Se voglio fare in modo che i contenuti di file2
abbinino i contenuti di file1
, potrei ovviamente semplicemente eseguire cp file1 file2
.
Tuttavia, se voglio conservare tutto su file2
tranne il contenuto-proprietario, i permessi, attributi estesi, ACL, hard link, ecc, ecc, quindi non vorrei correre cp
. * In questo caso voglio solo plop il contenuto di file1
into file2
.
Sembra che il seguente lo farebbe:
< file1 > file2
Ma non funziona file2
viene troncato a nulla e non scritto. Tuttavia,
cat < file1 > file2
fa il lavoro.
Mi ha sorpreso che la prima versione non funzioni.
La seconda versione è un UUOC? C'è un modo per farlo senza invocare un comando, semplicemente usando i reindirizzamenti?
Nota: sono consapevole che UUOC è più un punto pedante che un vero anti-pattern.
* Come tniles09 scoperto , cp
volontà nel lavoro fatto in questo caso.
<
...
file1
non esiste oppure è illeggibile e lo apri <
prima >
dell'apertura dell'output, quindi considera cosa succede quando permetti cat
di provare ad aprirlo.
cat
(per impostazione predefinita), essenzialmente eseguendo il secondo comando. Vedi la risposta di Stéphane Chazelas di seguito per ulteriori informazioni rispetto a quelle contenute in un commento.
< file1 > file2
fa quello che vuoi dipende dalla shell.