Si je veux que le contenu de file2
corresponde à 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 file1
dans file2
.
Il semble que ce qui suit le ferait:
< file1 > file2
Mais ça ne marche pas. file2
est 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.
<
...
file1
n'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 > file2
ce soit ce que vous voulez dépend du shell.