Comment ajouter la sortie à un fichier?


125

Comment puis-je faire quelque chose comme command > filed'une manière qu'il ajoute au fichier, au lieu de l'écraser?


1
(Il y a beaucoup, beaucoup - peut-être beaucoup trop! - de goodies dans le manuel de référence bash, y compris toutes sortes de redirections. Ajustez-les si nécessaire pour le shell.)

4
Vous pouvez également utiliser tee, si vous souhaitez rediriger vers STDOUT et ajouter les résultats à un fichier. Par exemple: echo "bonjour" | tee -a somefile.txt, où le drapeau -a signifie append.
Henrik

Réponses:



103

Ouais.

command >> filepour rediriger juste stdout de command.

command >> file 2>&1pour rediriger stdout et stderr vers le fichier (fonctionne dans bash, zsh)

Et si vous avez besoin d'utiliser sudo, rappelez-vous que

sudo command >> /file/requiring/sudo/privilegesne fonctionne pas, car l'élévation des privilèges s'applique à la commandpartie de redirection shell mais pas. Cependant, la simple utilisation teerésout le problème:

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


6
J'utilise ceci pour tous les programmes de capture de sortie .sh 2> & 1 | tee -a screen.log. "-a" signifie append.
Xdg

-3

vous pouvez ajouter le fichier avec le signe >>. Il insère le contenu à la fin du fichier que nous utilisons.eg si le fichier laisse son nom est myfile contient xyz alors cat >> myfile abc ctrl d

après le processus ci-dessus, le myfile contient xyzabc.


4
L' >>opérateur a déjà été mentionné trois ans plus tôt, et le PO sait ce que signifie ajouter.
Dan Dascalescu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.