web-dev-qa-db-fra.com

Commandes de tuyauterie avec très grande sortie

Je veux tar un répertoire et écrivez le résultat à stdout, puis tuyez-le à un programme de compression, comme celui-ci:

tar -cvf - /tmp/source-dir | lzip -o /media/my-usb/result.lz -

J'utilise le tuyau tout le temps avec des commandes qui produisent plusieurs lignes de texte. Maintenant, je me demande ce qui se passerait quand j'arrive lorsque je passe une commande (rapide) avec une très grande sortie telle que tar et une commande de compression très lente suivie? Will tar attendre que sa sortie soit consommée par lzip? Ou cela fait juste aussi vite que possible alors émet tout à la RAM? Ce sera une catastrophe dans le bas RAM si ce dernier est vrai.

20
Livy

Gnu tar a - lzip Option à "Filtrer l'archive via LZIP", vous pouvez donc vouloir utiliser à la place:

tar -cvf --lzip /media/my-usb/result.lz /tmp/source-dir

Répondre à la question: Dans votre cas, le système gérera le tuyau correctement à l'aide de la taille du tampon du système par défaut.

2
Yurko