192 votes

Comment faire pour gzip tous les fichiers dans tous les sous-répertoires dans un seul fichier compressé en bash

Double Possible:
gzipping un ensemble de répertoires et de la création d'un fichier compressé tar

Ce post explique comment gzip chaque fichier individuellement dans une structure de répertoire. Cependant, j'ai besoin de faire quelque chose de légèrement différent. J'ai besoin de produire un grand gzip fichier pour tous les fichiers dans un répertoire spécifique. J'ai aussi besoin d'être en mesure de spécifier le nom de fichier de sortie pour le fichier compressé (par exemple, files.gz) et écraser l'ancien fichier compressé fichier s'il existe déjà.

Je suis assez nouveau à Linux, donc merci d'avance à toutes les versions de Linux gourous là pour qui c'est une partie de plaisir.

378voto

amitchhajer Points 4087
<pre><code></code><p>tout en folderToCompress ira à compressFileName</p><p>Edit : Après examen et commentaires, j’ai réalisé que le peuple peut se confondre avec compressFileName sans extension. Si vous voulez vous pouvez utiliser. extension tar.gz (comme le suggère) avec le compressFileName</p></pre>

59voto

vahid Points 2070

il y a beaucoup de méthodes de compression de travail de manière récursive en ligne de commande et il est bon de savoir qui à la fin de l'auditoire.

c'est à dire si elle est à envoyer à quelqu'un exécutant windows puis zip serait probablement la meilleure:

zip -r file.zip folder_to_zip

unzip filenname.zip

pour les autres utilisateurs de linux ou de votre auto goudron est grand

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

On doit être prudent avec du goudron et de la façon dont les choses sont mises en place/extrait, par exemple si je lance

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/home/myusername

tar -xvzf passwd.tar.gz

cela va créer /home/myusername/etc/passwd

pas sûr que toutes les versions de tar ce faire:

 Removing leading `/' from member names

18voto

Jeremy J Starcher Points 10640

@amitchhajer poste fonctionne pour GNU tar. Si quelqu'un trouve ce post et qu’il a besoin pour fonctionner sur une NON `` système, ils peuvent faire cela :

Pour développer l’archive :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X