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?

Tom Brito
la source
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:

212

Utilisez >>pour ajouter:

command >> file
Mike Lewis
la source
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

EdvardM
la source
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.

user3680358
la source
4
L' >>opérateur a déjà été mentionné trois ans plus tôt, et le PO sait ce que signifie ajouter.
Dan Dascalescu