Archivage et compression de données GNU/Linux (Debian)

L'ARCHIVAGE permet de sauvegarder toute une série de fichiers dans un fichier unique. La compression (pas toujours nécessaire) n'est pas nécessairement indispensable.

Pour le minimum à connaître sur un système GNU/Linux (ligne de commande, système de fichiers…), voir cette page.

Les exemples donnés ci-dessous fonctionnent à condition que les commandes et applications indiquées soient installées sur votre système. Une ligne en caractère monospace signifie une commande à saisir dans une console, #En mode super-utilisateur: su - [Enter] signifie que la commande doit être passée en mode "root", super-utilisateur, ce qui se réalise en saisissant su puis le mot de passe super-utilisateur; vous pouvez utiliser aptitude ou synaptic.

La compression d'un texte français de 1 068 464 octets (codage UTF-8: chaque lettre accentuée prend deux octets) a généré des fichiers pesant 262 893 (.bz2), 281 900 (.xz), 281 906 (.lzma), 282 036 (.7z), 344 725 (.zip et .cbz), 362 359 (.gz), 628 764 (.exe, en ce compris l'exécutable de près de 350 000 octets permettant de le décompresser en Windows ou avec Wine). Le format .ar ou la combinaison avec .tar n'apporte aucune compression mais permet une hiérarchisation des fichiers en (sous-)répertoire(s).

On ne peut attendre que peu de gain avec l'archivage et compression de fichiers déjà compressés, comme les .mp3, .gif, .png, .jpg… Quant aux fichiers bruts comme les images .raw ou les fichiers de son wav, la compression sans perte de qualité tel qu'il est question ici n'apporte généralement pas de gros gains. Utiliser l'archivage permet dans ce cas un transfert plus aisé d'un grand nombre de fichiers.

1. Bureau

2. tar, gzip, bzip2

3. 7z et rar

4. ace, cab, lzh et lha

1. Bureau

Voir ark (KDE), file-roller pour Gnome, engrampa pour Mate-desktop.

En général, un clic droit sur un fichier ou un répertoire permet l'option compresser. Une liste des formats disponibles apparaît, certaines options supplémentaires sont disponibles selon les formats, comme la protection de l'archive par un mot de passe pour les formats .7z ou .bcr

Attention: les formats disponibles pour les outils d'archivage du Bureau dépendent des paquets installés. 7z, arc, arj, bcr, bz, bz2, cab, gz, lha, lzh, rar, tar, zip… sont ou ont été des extensions courantes

ark (Plasma/KDE) permet de compresser des fichiers ou décompresser des archives (zip/tar, gz, bz, rar, dzip). Semblent installées par défaut les librairies: zip, p7zip, zoo, bzip2, tar.gz.

mc décompresse parfois des archives.

2. tar, gzip, bzip2

L'archivage en fichier .tar consiste en l'agrégation de plusieurs fichiers en un seul. Il peut être suivi d'une compression en .gz ou .bz2.

-x extrait, -c crée une archive, v pour verbeux et f pour générer les fichiers.

tar -xvf archive.tar extrait une archive
tar -cvf repertoire archive.tar archive un répertoire en archive tar

z concerne la compression gzip

tar -xzvf archive.tar.gz décompresse et extrait une archive au format gzip (x pour extraction)
tar -czvf archive.tar.gz repertoire archive et compresse un répertoire en archive gzip (c pour compression)

j concerne la compression bzip2

tar -xjvf archive.tar.bz2 décompresse et extrait une archive au format bzip2
tar -cjvf archive.tar.bz2 repertoire archive et compresse un répertoire en archive bzip2

gzip -d * ou gunzip * décompresse tous les fichiers .gz du répertoire courant

3. 7z et rar

#En mode super-utilisateur: su - [Enter] apt install p7zip-full installe l'exécutable 7z

7z a votre_archive votre_fichier ajout (a) d'un fichier à l'archive .7z, créée au besoin
7z a -p archive fichier l'option -p demande un mot de passe et sa confirmation
7z a -psweetlove archive fichier le mot de passe sweetlove est passé dans la commande
7z a -tbzip2 archive fichier spécification d'un autre type -t d'archive: bzip2, gzip, zip, tar, deb, iso, rpm…
7z a -sfx archive.exe fichier archivage en fichier autoextractible pour Windows (au cas où…)

7z x zozo.7z décompresse (eXtrait) l'archive zozo.7z; si elle est protégée par un mot de passe, il sera demandé
7z x -trar zozo.rar eXtrait l'archive zozo.rar si le paquet non libre p7zip-rar est installé

man 7z pour plus d'informations

#En mode super-utilisateur: su - [Enter] apt install unrar-free installe l'utilitaire unrar (ne décompresse pas les fichiers issus de la version 3).

unrar-free -x toto.rar devrait décompresser un fichier .rar

Note: les droits des fichiers (lecture, écriture, exécution) ne sont pas gérés par tous les formats, dont .7z et .rar

4. ace, cab, lzh et lha

ace

Des paquet unace ou unace-nonfree (attention: même commande!):

unace e archive.ace extrait les fichiers
unace x archive.ace même chose, en tenant compte des chemins

Le paquet non-free permet également le désarchivage à partir de la version 2.0, avec gestion du mot de passe:

unace x -p archive.ace

cab

Le paquet cabextract permet d'extraire les archives non compressées au format Cabinet (MicroSoft), lcab de créer de telles archives, le paquet gcab fait les deux.

cabextract -drepertoire archive.ace extrait les fichier d'une archive MicroSoft (dans un éventuel répertoire)

lcab fichier1 fichier2 … cible.cab archives des fichiers
lcab -r repertoire cible.cab archive un répertoire et ses sous-répertoires (r pour récursif)

gcab -c cible.cab fichier1 fichier2 … archive plusieurs fichiers. Attention: le nom de la cible avant les sources
gcab -cz cible.cab fichier1 fichier2 … archive plusieurs fichiers (compression zip)
gcab -cz cible.cab repertoire archive et compresse un répertoire

lha, lhz, pma

#En mode super-utilisateur: su - [Enter] apt install jlha-utils installe l'utilitaire en mode console pour les fichiers lzh (Atari et DOS). Le paquet lhasa ne permettrait que de décompresser ces formats.

Résumé des fonctionnalités

Note: tout n'a pu être testé.

Ext.CommandePaquets .debRemarques
.aceunaceunaceextrait seulement, limité à la version 1.0
unaceunace-nonfreeextrait seulement
.cabcabextractcabextractextrait les fichiers d'une archive en format Cabinet
lcablcabcrée les archives de ce format
gcabgcabarchive (éventuelle compression zip) et extrait
.lhalhajlha-utils
lhalhasaextrait seulement
.pmalhajlha-utils
lhalhasaextrait seulement
.lzhlhajlha-utils
lhalhasaextrait seulement
.lzslhajlha-utils
lhalhasaextrait seulement