J'ai trouvé un problème avec linux gnu tar. Lorsque j'utilise l'option
-T - (for file list from stdin) or
-T named_pipe_file ,
cela ne fonctionne pas à la volée. par exemple, un simple script interactif :
while read x; do echo $x; done|\
tar cvf tar.tar -T -
tar ne commence à archiver que lorsque j'appuie sur ^D pour marquer l'entrée EOF la même situation se produit lorsque j'utilise named pipe :
mkfifo named_pipe
tar cvf tar.tar -T named_pipe
while read x; do echo $x; done >named_pipe
Il semble que le goudron fasse de la mise en mémoire tampon. Mais combien de temps cela dure-t-il ? Je dois repacker beaucoup de fichiers en TAR mais j'ai peu d'espace disque. Je dois donc le faire à la volée. Je voulais utiliser l'option tar --remove-files pour cela. Mais sans interactivité pour l'option -T, c'est impossible. Dans le plan, la partie "while" du code devrait décompresser les fichiers les uns après les autres et attendre que TAR les supprime, puis le fichier suivant. Merci pour vos idées :)
ma version de tar : tar (GNU tar) 1.26 (C) 2011 FSF