sponge(1): soak up stdin/write to file - Linux man page
J'ai failli réécrire ça, pour un énième cas où ça aurait été tellement plus pratique que de scinder en plusieurs commandes avec un fichier temporaire -- avant de faire une petite recherche et de tomber sur sponge
.
Le but ? pouvoir piper un fichier en entrée et l'écraser en sortie. Le souci ? Avec une redirection shell, le fichier est ouvert en écriture avant de lancer les commandes (logique, vu qu'il faut que le shell ait un descripteur de fichier à associer à la sortie de la commande), ce qui écrase/vide le fichier avant même que la première commande ait une chance d'y lire quoi que ce soit.
Donc on peut enfin faire transform < file | sponge file
(ou quelque équivalent plus complexe que ce soit).
Probablement également un équivalent potentiel à | sudo tee file >/dev/null
, même si l'ajout de complexité peut potentiellement avoir des implications de sécurité (fichiers temporaires ? sur-utilisation de mémoire ?) -- même si elles sont probablement sans conséquences dans la totalité des cas.
— Permalink