Come aggiungere l'output a un file?


125

Come posso fare qualcosa del genere command > filein un modo che si aggiunge al file, invece di sovrascrivere?


1
(Ci sono molte, forse troppe!) Chicche nel manuale di riferimento di bash, inclusi tutti i tipi di reindirizzamenti. Regola come necessario per la shell.)

4
È inoltre possibile utilizzare tee se si desidera reindirizzare a STDOUT e aggiungere risultati a un file. Ad esempio: echo "ciao" | tee -a somefile.txt, dove la bandiera -a sta per append.
Henrik,

Risposte:



103

Si.

command >> fileper reindirizzare solo stdout di command.

command >> file 2>&1reindirizzare stdout e stderr al file (funziona in bash, zsh)

E se devi usarlo sudo, ricordalo

sudo command >> /file/requiring/sudo/privilegesnon funziona, poiché l'elevazione dei privilegi si applica commandma non alla parte di reindirizzamento della shell. Tuttavia, semplicemente usando teerisolve il problema:

command | sudo tee -a /file/requiring/sudo/privileges


6
Sto usando questo per tutti i programmi di acquisizione output.sh 2> & 1 | tee -a screen.log. "-a" sta per append.
Xdg,

-3

puoi aggiungere il file con >> segno. Inserisce il contenuto nell'ultimo file che stiamo usando .eg se il file lascia che il suo nome sia myfile contiene xyz quindi cat >> myfile abc ctrl d

dopo il processo sopra il myfile contiene xyzabc.


4
L' >>operatore era già stato menzionato tre anni prima e l'OP sa cosa significa aggiungere.
Dan Dascalescu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.