Comment écraser un fichier avec echo?

10

Lorsque vous utilisez echo "foo">> bar.txtplusieurs fois, il s'ajoute à la fin d'un fichier. Comment écraser à bar.txtchaque fois?

J.Olufsen
la source
2
La réponse de Dennis est correcte. Voir man bashet rechercher (en utilisant /) la section "REDIRECTION". Plus précisément les sous-sections "Redirection de la sortie" et "Ajout de la sortie redirigée".
RedGrittyBrick

Réponses:

28

>est pour rediriger vers un fichier (l'écraser), tandis que >>pour l'ajouter.

Pour écraser bar.txt, utilisez ceci:

echo "foo" > bar.txt
Dennis
la source
1
Plus communément, >est appelé redirection (sortie standard vers un fichier) tandis que le symbole de tuyau |est appelé tuyauterie (sortie standard vers un autre processus). Vous courez le risque de dérouter des gens comme moi lorsque vous vous référez à >la «tuyauterie»
RedGrittyBrick
@RedGrittyBrick: J'ai vu des tuyaux dans quelques livres (et je le dis depuis des années), mais la redirection semble être beaucoup plus courante. Merci.
Dennis
@Dennis Piping utilise le canal |pour connecter la sortie d'un programme / commande à l'entrée d'un autre. Connexes .
Daniel Beck
@DanielBeck: Je voulais dire que j'ai vu des tuyaux vers un fichier . Exemple: Apprenez Windows PowerShell en un mois de déjeuners - Tuyauterie vers un fichier ou une imprimante
Dennis
Notez que selon la page 43, dans PowerShell > fooest juste du sucre syntaxique pour | Out-File foo, et est donc une forme de tuyauterie ;-)
Daniel Beck