Se eu quiser fazer o conteúdo file2
corresponder ao conteúdo file1
, obviamente poderia simplesmente executar cp file1 file2
.
No entanto, se eu quero preservar tudo sobre file2
exceto o conteúdo-proprietário, permissões, atributos estendidos, ACLs, hard links, etc., etc., então eu não quero correr cp
. * Nesse caso, eu só quero plop o conteúdo de file1
em file2
.
Parece que o seguinte faria:
< file1 > file2
Mas isso não funciona. file2
é truncado para nada e não gravado para. Contudo,
cat < file1 > file2
faz o trabalho.
Surpreendeu-me que a primeira versão não funcione.
A segunda versão é um UUOC? Existe uma maneira de fazer isso sem chamar um comando, apenas usando redirecionamentos?
Nota: Estou ciente de que o UUOC é mais um ponto pedante do que um verdadeiro anti-padrão.
* Como tniles09 descoberto , cp
vontade de fato trabalhar neste caso.
<
...
file1
não existe ou então é ilegível e você o abre <
antes que a >
saída seja aberta e depois considere o que acontece quando você permite cat
tentar abri-lo.
cat
(por padrão), essencialmente executando o segundo comando. Veja a resposta de Stéphane Chazelas abaixo para saber mais sobre o que cabe em um comentário.
< file1 > file2
o que você quer depende do shell.