GNU/Linux >> Tutoriels Linux >  >> Linux

Comment compresser tous les fichiers de tous les sous-répertoires dans un fichier compressé dans bash

il existe de nombreuses méthodes de compression qui fonctionnent de manière récursive en ligne de commande et il est bon de savoir qui est le public final.

c'est-à-dire que s'il doit être envoyé à quelqu'un exécutant Windows, alors zip serait probablement le meilleur :

zip -r file.zip folder_to_zip

unzip filenname.zip

pour les autres utilisateurs Linux ou votre self tar est génial

tar -cvzf filename.tar.gz folder

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

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

Il faut être prudent avec le goudron et la façon dont les choses sont tarées/extraites, par exemple si je cours

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


pwd

/home/monnom d'utilisateur

tar -xvzf passwd.tar.gz

cela créera /home/myusername/etc/passwd

je ne sais pas si toutes les versions de tar le font :

 Removing leading `/' from member names

Le message de @amitchhajer fonctionne pour GNU tar. Si quelqu'un trouve ce message et en a besoin pour travailler sur un NON GNU système, ils peuvent le faire :

tar cvf - folderToCompress | gzip > compressFileName

Pour développer l'archive :

zcat compressFileName | tar xvf -

tar -zcvf compressFileName.tar.gz folderToCompress

tout dans folderToCompress ira à compressFileName

Edit:Après examen et commentaires, j'ai réalisé que les gens pouvaient être confus avec compressFileName sans extension. Si vous le souhaitez, vous pouvez utiliser l'extension .tar.gz (comme suggéré) avec le compressFileName


Linux
  1. Comment extraire les fichiers .gz et .tar.gz sous Linux

  2. Concaténer des fichiers spécifiques en un seul fichier ?

  3. Comment trier les fichiers dans des dossiers par type de fichier sur bash (avec la commande 'file') ?

  4. Comment ajouter le contenu de plusieurs fichiers dans un seul fichier

  5. Comment convertir un fichier TAR en un fichier ISO

Comment lire des fichiers ligne par ligne dans Bash

Tout sur les fichiers tar et comment tar, décompresser des fichiers sous Linux à l'aide du terminal

Comment supprimer tous les fichiers d'un dossier sauf un fichier spécifique sous Linux

Comment tarer des types de fichiers spécifiques (extensions) dans un répertoire

Comment fusionner plusieurs fichiers PDF en un seul PDF sous Linux

Comment joindre/fusionner plusieurs fichiers audio en un seul sous Linux