Skip to content

✉️ Discover TinkMail

Powerful email solutions for personal and business use

Get Started Free

Comment compresser et décompresser des fichiers dans un environnement Linux

La différence entre l'archivage et la compression

L'archivage et la compression sont des concepts différents. L'archivage consiste à combiner plusieurs fichiers/dossiers en un seul fichier, tandis que la compression consiste à réduire la taille du fichier grâce à des algorithmes de compression. Il est important de noter que l'archivage ne signifie pas réduire la taille, et la compression ne signifie pas fusionner des fichiers ensemble. Bien que la plupart du temps nous soyons habitués à "archiver et compresser" et que parfois nous n'ayons pas besoin de les distinguer, comprendre la différence peut vous aider à mieux comprendre les commandes dans votre système Linux.

Archiver et désarchiver (tar)

Archiver seulement

Utilisez la commande tar pour archiver plusieurs fichiers/dossiers en un seul fichier.

sh
tar -cvf archive.tar file1 file2 file3

archive.tar est le fichier archivé, file1, file2 et file3 sont les fichiers/dossiers à archiver.

Pour chaque fichier archivé, la sortie sera.

sh
a file1
a file2
a file3

Archiver et compresser

La commande tar intègre également la compression, soit en utilisant les algorithmes de compression gzip ou bzip2, avec les paramètres suivants -z et -j respectivement.

sh
# Utiliser la compression gzip avec .gz après le nom du fichier
tar -zcvf archive.tar.gz file1 file2 file3

# Utiliser la compression gzip avec .tgz comme suffixe de nom de fichier
tar -zcvf archive.tgz file1 file2 file3

# Compresser en utilisant bzip2 avec .bz2 après le nom du fichier
tar -jcvf archive.tar.bz2 file1 file2 file3

# Compresser avec bzip2, en utilisant .tbz2 comme suffixe de nom de fichier
tar -jcvf archive.tbz2 file1 file2 file3

Désarchiver

sh
tar -xvf archive.tar

Si vous devez désarchiver vers un répertoire spécifié, ajoutez le paramètre -C.

sh
tar -xvf archive.tar -C /path/to/destination/directory

S'il y a compression, ajoutez les arguments correspondants -z ou -j :

sh
# Décompresser l'archive gzip
tar -zxvf archive.tar.gz

# Décompresser l'archive bzip2
tar -jxvf archive.tar.bz2

Compresser et décompresser des fichiers

Compression gzip

La commande gzip est utilisée pour compresser un fichier. Il est à noter qu'elle écrase le fichier original, c'est-à-dire que le fichier original disparaît après avoir été compressé avec la commande gzip.

sh
## file disparaîtra et un nouveau file.gz sera créé
gzip file

Appliquer gzip directement à un répertoire n'a aucun effet, car gzip ne peut compresser que des fichiers, pas des répertoires. Cependant, tous les fichiers d'un répertoire peuvent être compressés de manière récursive en utilisant l'argument -r :

sh
# Tous les fichiers du répertoire dirname sont compressés, chaque fichier génère un fichier .gz correspondant, et le fichier original disparaît
gzip dirname

Décompression gzip

Décompressez un seul fichier, en utilisant le paramètre -d.

sh
### Décompresse le fichier file.gz, créant un nouveau fichier
gzip -d file.gz

L'ajout de l'argument -r permet une décompression récursive contre les répertoires, similaire à la récursion dans la compression, qui décompresse également tous les fichiers d'un répertoire :

sh
# Décompresse tous les fichiers compressés gzip dans dirname et ses sous-répertoires
gzip -dr dirname

Compression zip

zip peut à la fois archiver et compresser.

Pour archiver et compresser.

sh
zip archive.zip file1 file2 file3

Sortie.

sh
adding: file1 (stored 0%)
adding: file2 (stored 0%)
adding: file3 (stored 0%)

Si vous avez des répertoires à compresser ensemble, vous devez ajouter le paramètre -r, et vous pouvez utiliser le paramètre -q pour désactiver la sortie :

sh
zip -qr archive.zip dirname

Décompression zip

Pour décompresser directement dans le répertoire courant.

sh
unzip archive.zip

Si vous voulez décompresser dans un répertoire spécifique, utilisez le paramètre -d, de plus le paramètre -o peut écraser les fichiers existants sans demander :

sh
unzip -d /path/to/destination/directory -o archive.zip

Résumé rapide

suffixearchiver/compresserdésarchiver/décompresser
.tartar -cvf archive.tar file1 file2tar -xvf archive.tar -C /dest/path
.tar.gz/.tgztar -zcvf archive.tar file1 file2tar -zxvf archive.tar -C /dest/path
.tar.bz2/.tbz2tar -jcvf archive.tar file1 file2tar -jxvf archive.tar -C /dest/path
.gzgzip filegzip -d file.gz
.zipzip -r archive.zip file1 file2unzip -d /dest/path -o archive.zip