2010-01-07 4 views
3

Est-il possible d'utiliser quelque chose comme:Linux: Ajout de fichiers nommés à une archive zip, à partir d'un tube

command.exe | zip >> archive.zip

commande2.exe | zip >> archive.zip

... et se retrouvent avec deux fichiers nommés dans une archive zip. De cette façon, si possible, serait plus propre que d'avoir des fichiers temporaires.

+0

Quel est le problème avec les fichiers tmp? – Malfist

+0

Augmentation de l'utilisation maximale du disque en attendant que le dernier fichier texte soit prêt. – Ticktoe

+0

ne devrait-il pas être sur serverfault? – Kimvais

Répondre

2

Créez deux canaux nommés dans un nouveau répertoire (avec mkfifo), dirigez la sortie des commandes vers ces deux canaux, puis zippez le répertoire.

mkdir tmp 
mkfifo tmp/1.out 
mkfifo tmp/2.out 
command1.exe > tmp/1.out 
command2.exe > tmp/2.out 
zip -FI -r tmp.zip tmp/ 

EDIT: Ajout de l'indicateur FI à zip, ce qui rend cela possible. Le seul inconvénient est que vous avez besoin de zip 3.0 pour que cela fonctionne. Tar: ing FIFO: s n'est pas implémenté (selon tar devs) car vous avez besoin de la taille du fichier à l'avance pour l'écrire dans l'en-tête TAR.

Questions connexes