Si je veux que le contenu de file2corresponde à celui de file1, je pourrais évidemment simplement courir cp file1 file2.
Toutefois, si je veux tout conserver, à l' file2 exception du contenu (propriétaire, autorisations, attributs étendus, ACL, liens physiques, etc.), je ne voudrais pas courir cp. contenu de file1dans file2.
Il semble que ce qui suit le ferait:
< file1 > file2
Mais ça ne marche pas. file2est tronqué à rien et non écrit. cependant,
cat < file1 > file2
ça marche.
Cela m'a surpris que la première version ne fonctionne pas.
La deuxième version est-elle un UUOC? Y a-t-il un moyen de faire cela sans invoquer une commande, simplement en utilisant des redirections?
Note: Je suis conscient que UUOC est plus un point de pédant qu'un véritable anti-pattern.
* Comme tniles09 découvert , cp volonté dans le travail fait dans ce cas.
<...
file1n'existe pas ou est illisible et que vous l'ouvrez < avant que la > sortie ne soit ouverte, puis considérez ce qui se passe lorsque vous autorisez catà essayer de l'ouvrir.
cat(par défaut), exécutant essentiellement la deuxième commande. Voir la réponse de Stéphane Chazelas ci-dessous pour plus de détails qu’un commentaire.
< file1 > file2ce soit ce que vous voulez dépend du shell.