L’archivage consiste à stocker des données ou des ré­per­toires en sécurité, le plus souvent sous forme comprimée. Pour des raisons de sécurité des données, l’archivage dans un en­vi­ron­ne­ment serveur a ra­pi­de­ment pris une im­por­tance gran­dis­sante. À la base, les données serveur étaient sé­cu­ri­sées par des lecteurs de bandes mag­né­tiques. Pour des quantités de données im­por­tantes, cette méthode de sau­ve­garde est toujours d’actualité. Pour rendre le processus d’archivage aussi efficace que possible, le système Unix a développé dès 1979 le logiciel d’archivage de données dénommé tar (de l’anglais tape archiver). À l’aide de tar, les données et les ré­per­toires sont archivés dans un fichier unique et les droits d’uti­li­sa­teur restent intacts lorsque la source et la cible sont syn­chrones et que les droits de fichiers sont soutenus par Linux.

Pour éco­no­mi­ser de l’espace mémoire lors du processus d’archivage, les données .tar sont com­pri­mées à l’aide d’outils comme gzip, bzip2 ou encore lzop. Mais en quoi les dif­fé­rents pro­grammes et formats de com­pres­sion se dis­tin­guent-ils ? Et pourquoi les systèmes tels que Linux tar sont-ils d’une si grande im­por­tance ?

Backup Cloud par Acronis
Protégez vos appareils et réduisez les temps d'arrêt
  • Sau­ve­garde au­to­ma­tique et res­tau­ra­tion facile
  • Gestion et pla­ni­fi­ca­tion in­tui­tives
  • Pro­tec­tion contre les menaces basée sur l'IA

Quels sont les prin­ci­paux pro­grammes de com­pres­sion sous Linux ?

Il existe une série d’outils de com­pres­sion gratuits sous Linux, qui ont tous une par­ti­cu­la­rité en commun : ils peuvent être utilisés via un espace de commande. De courtes commandes per­met­tent de comprimer ra­pi­de­ment des données, comme par exemple des documents HTML, ce qui apporte une op­ti­mi­sa­tion de l’espace de la bande passante et du stockage lors de l’envoi sur des réseaux ou sur Internet. De plus, vous trouverez de manière standard des in­ter­faces gra­phiques sur ces outils, tout comme des ges­tion­naires d’archives qui com­pren­nent dif­fé­rentes in­ter­faces uti­li­sa­teur, sans pour autant à avoir à té­lé­char­ger les pro­grammes de com­pres­sion. L’uti­li­sa­tion des in­ter­faces gra­phiques requiert des res­sources système tierces, c’est pourquoi le terminal détermine le nombre idéal de res­sources pour la com­pres­sion.

La prin­ci­pale dif­fé­rence avec les dif­fé­rents pro­grammes repose sur le degré de com­pres­sion, qui implique une durée de temps de com­pres­sion variable. Par ailleurs, il est la plupart du temps possible de choisir dif­fé­rentes mo­di­fi­ca­tions, afin de choisir par exemple les meil­leures économies de stockage ou encore de comprimer le plus ra­pi­de­ment possible des données. Un autre avantage repose sur les dif­fé­rents formats de sortie proposés. Au vu des multiples al­go­rithmes utilisés, les données com­pri­mées com­por­tent plusieurs formats et re­quiè­rent dif­fé­rents pro­grammes pour être dé­com­pres­sés.

gzip

gzip (GNU zip) est la méthode de com­pres­sion la plus utilisée sous Linux. Cet outil basé sur l’al­go­rithme Deflate et qui est le suc­ces­seur du programme Compress d’Unix développé pour la pla­te­forme GNU, joue un rôle important dans le dé­ve­lop­pe­ment Web. Aujourd’hui l’ap­pli­ca­tion utilise le langage de pro­gram­ma­tion C et peut grâce à plusieurs variantes être fa­ci­le­ment utilisée pour la com­pres­sion non seulement sous Linux mais aussi pour les systèmes Windows et MacOs afin d’extraire et de com­pres­ser ou de dé­com­pres­ser des fichiers et des paquets. Gzip ne traite pas cor­rec­te­ment les fichiers trop vo­lu­mi­neux et ne traite que les blocs de près de 32 000 octets. Ainsi, en com­pa­rai­son avec d’autres logiciels de com­pres­sion plus moderne, il peut paraître obsolète.

En terme de vitesse, le programme libre de com­pres­sion est jusqu’à aujourd’hui à la pointe, c’est pourquoi les logiciels de serveurs Web po­pu­laires comme Apache, IIS ou NGINX ont gé­né­ra­le­ment intégrés le programme dans un module afin de répondre en un court délai aux demandes des uti­li­sa­teurs avec la com­pres­sion des paquets de données. Pour plus d’in­for­ma­tions sur ce logiciel de com­pres­sion avec licence libre GPL, vous pouvez consulter notre article.

Avantages In­con­vé­nients
Processus de com­pres­sion rapide Taille réduite des blocs
Standard pour les logiciels de serveur Web Niveau de com­pres­sion faible

bzip2

Pour une com­pres­sion sans perte et de haute qualité des fichiers sous Linux, bzip2 est distribué sous une licence libre BSD. L’ap­pli­ca­tion utilise une technique de com­pres­sion à trois niveaux : avec la technique appelée trans­for­mée de Burrows-Wheeler, elle trie les ca­rac­tères dans dif­fé­rents blocs. Ils peuvent avoir une taille maximum de 900 000 octets. L’al­go­rithme MTF (Move To Front) est appliqué et les ca­rac­tères sont ainsi traités et déplacés vers l’avant. Enfin, le codage de Huffman assure la bonne com­pres­sion des données. Avec bzip2 les données com­pres­sées ob­tien­nent le format .bz2.

Le programme développé par Julian Seward est souvent bien plus per­for­mant en matière de com­pres­sion et de loin, cependant il est en con­tre­par­tie aussi beaucoup plus lent. Un avantage de bzip2 est qu’il est possible avec ce logiciel de tra­vail­ler avec des archives qui sont par­tiel­le­ment en­dom­ma­gées et de les dé­com­pres­ser. Par exemple, avec l’aide de bzip2recover, vous pouvez extraire au moins tous les blocs encore lisibles, puis les dé­com­pres­ser. Bzip2 est le suc­ces­seur officiel de bzip qui fonc­tion­nait avec un codage arith­mé­tique mais qui n’est plus en dé­ve­lop­pe­ment pour des raisons de brevets.

Avantages In­con­vé­nients
Très forte com­pres­sion Très lent
Pos­si­bi­lité d’extraire des archives en­dom­ma­gées  

p7zip

p7zip est le portage de la version en ligne de commande de 7-zip, distribué sous la licence LGPL (Licence publique générale limitée GNU), c’est ainsi un logiciel libre pour les pla­te­formes POSIX. Le logiciel est la seule solution sous Linux pour supporter com­plè­te­ment le format 7z. Le logiciel de com­pres­sion développé en 1998 par Igor Vik­to­ro­vitch Pavlov repose sur l’al­go­rithme de Lempel-Ziv-Markov (LZMA pour Lempel-Ziv-Markov chain-Algorithm). Il utilise la méthode de com­pres­sion avec dic­tion­naire et peut être considéré comme une version ul­té­rieure de Deflate (com­pres­sion plus forte d’environ 50 pourcent). L’archive de fichiers peut être frac­tion­née si né­ces­saire en plusieurs grandes parties, avec une pro­tec­tion par mot de passe et en option un cryptage AES-256 (en-tête).

LZMA offre de très bons résultats avec une com­pres­sion puissante et de bons résultats au niveau de la vitesse. Cependant, l’outil de com­pres­sion est très exigeant en matière de per­for­mance et de con­fi­gu­ra­tion du système. En par­ti­cu­lier pour une com­pres­sion de niveau élevée, un bon pro­ces­seur (au moins 5 GHz) et suf­fi­sam­ment de RAM (2 Go ou plus) sont des con­di­tions préa­lables. En plus de l’uti­li­sa­tion via le terminal ou un ges­tion­naire d’archives, p7zip-gui fournit aussi sa propre interface graphique pour accéder au portage 7-Zip.

Avantages In­con­vé­nients
Excellent rapport entre la per­for­mance de com­pres­sion et la durée Con­fi­gu­ra­tion système requise élevée
Cryptage et pro­tec­tion avec mot de passe possible.  

lzop

Le logiciel de com­pres­sion lzop (Lempel-Ziv-Oberhumer-Packer) est, comme gzip, très per­for­mant au niveau de la vitesse de com­pres­sion et de dé­com­pres­sion réalisant même de meilleurs résultats que l’outil GNU. Il est basé sur l’al­go­rithme éponyme de Lempel-Ziv-Oberhumer (LZO), qui a été aussi publié sous la licence général de GNU (GPL) en 1996. La com­pres­sion est économe au niveau des res­sources et fonc­tionne avec la technique du dic­tion­naire : les chaînes de ca­rac­tères ré­cur­rentes sont rem­pla­cées par un symbole renvoyant à l’entrée cor­res­pon­dante de la première chaîne capturée dans le dic­tion­naire. Les données sont traitées en blocs de 256 000 octets. Par défaut, le fichier d’origine est maintenu lors du processus de com­pres­sion.

En plus d’une grande vitesse de com­pres­sion et de la com­pa­ti­bi­lité avec gzip, la por­ta­bi­lité du logiciel a également été une question centrale dans le dé­ve­lop­pe­ment du Lzop. C’est pourquoi, des versions existent pour pra­ti­que­ment toutes les pla­te­formes, y compris MacOs et Windows. Les fichiers com­pres­sés reçoivent le format .lzo.

Avantages In­con­vé­nients
Com­pres­sion très rapide Degré de com­pres­sion assez faible du fait de la vitesse élevée.
Grande por­ta­bi­lité  

Tableau com­pa­ra­tif des outils et formats habituels

  gzip bzip2 p7zip lzop
Système d‘ex­ploi­ta­tion Mul­ti­pla­te­forme Linux/Unix, Windows unixoide Mul­ti­pla­te­forme
Licence GNU GPL Semblable à BSD GNU LGPL GNU GPL
Procédé de com­pres­sion Al­go­rithme Deflate Trans­for­mée de Burrows-Wheeler, al­go­rithme Move to Front, codage Huffman Al­go­rithme LZMA Al­go­rithme LZO
Format des fichiers .gz .bz2 .7z .lzo
Cryptage     AES-256  
Mode de com­pres­sion 1–9 1–9 0–9 1, 3, 7–9
Avantages Très rapide Bon degré de com­pres­sion Excellent degré de com­pres­sion, pos­si­bi­lité de comprimer les ré­per­toires Grande rapidité, pos­si­bi­lité de comprimer les ré­per­toires
In­con­vé­nients Seuls les fichiers simples (in­di­vi­duels) peuvent être comprimés Vitesse moyenne, seuls les fichiers simples peuvent être comprimés Forte exigence envers la per­for­mance du système Faible degré de com­pres­sion

Comment la com­pres­sion des données fonc­tionne avec les outils Linux

Les pro­grammes de com­pres­sion men­tion­nés diffèrent con­si­dé­ra­ble­ment en matière de taux de com­pres­sion et de vitesse. Cependant au niveau de la syntaxe et de l’uti­li­sa­tion, il y a de fortes si­mi­li­tudes. Ils sont tous uti­li­sables sans une interface uti­li­sa­teur spé­ci­fique ou un ges­tion­naire d’archives, mais sim­ple­ment à partir de la ligne de commande : même pour un débutant, il est facile de se fa­mi­lia­ri­ser ra­pi­de­ment avec les dif­fé­rents pa­ra­mètres et commandes. Par exemple, nous allons vous montrer ci-dessous comment com­pres­ser des fichiers à l’aide de bzip2, puis comment dé­com­pres­ser les fichiers au format .bz2.

La syntaxe générale de bzip2 a la forme suivante :

bzip2 option fichier(s)

Il n’est pas né­ces­saire d’indiquer « option » pour le processus de com­pres­sion par défaut. Ceci est uni­que­ment né­ces­saire si vous souhaitez modifier les pa­ra­mètres de com­pres­sion et accéder au menu aperçu ou si vous voulez dé­com­pres­ser un fichier .bz2. Pour com­pres­ser un document texte, la commande test.txt est suf­fi­sante.

bzip2 test.txt

Elle supprime le fichier d’origine et le remplace par le fichier comprimé test.txt.bz2. Pour les documents reliés vous pouvez également utiliser une commande unique pour com­pres­ser plusieurs fichiers :

bzip2 test.txt test2.txt test3.txt

Si vous voulez dé­com­pres­ser un document déjà compressé, il est né­ces­saire de définir les pa­ra­mètres d’options ap­pro­priés (-d) comme ci-dessous :

bzip2 -d test.txt

Aperçu des autres options de commande de bzip2 :

Option Des­crip­tion
-1 … -9 Pour définir le niveau de com­pres­sion (1–9), la valeur 1 re­pré­sente la com­pres­sion la plus faible et la plus rapide, la valeur 9 re­pré­sente à l’inverse le taux de com­pres­sion le plus fort mais par con­sé­quent la com­pres­sion la plus lente. La valeur 5 est pré­dé­fi­nie.
-f Démarre la com­pres­sion même s’il existe déjà un fichier.bz2 avec le même nom. Dans ce cas le fichier existant sera écrasé.
-c Édite le document compressé sur la sortie standard (gé­né­ra­le­ment le bureau).
-q Pour supprimer tous les aver­tis­se­ments et les messages de bzip2.
-v Affiche des in­for­ma­tions sup­plé­men­taires comme le taux de com­pres­sion pour chaque fichier traité.
-t Vérifie l’intégrité du fichier sé­lec­tionné.
-k L’ajout de ce paramètre à la commande de com­pres­sion empêche la sup­pres­sion du fichier source
-h Ouvre le menu aide.

Pourquoi le logiciel d’archivage de fichier tar est si demandé ?

Le programme d’archivage tar est uti­li­sable depuis plus de 30 ans et son succès est loin de s’estomper. Cela vient notamment du fait que l’outil permet de préserver les droits d’uti­li­sa­teurs lors de l’archivage et surtout qu’il permet de com­pres­ser des ré­per­toires entiers. Cela fait de tar un par­te­naire parfait des outils de com­pres­sion com­pa­tibles comme gzip et bzip2, qui peuvent eux com­pres­ser seulement un fichier à la fois. Le programme tar comprime donc toutes les données d’un ré­per­toire en par­ti­cu­lier pour en faire une donnée archivée, en laissant les données obtenues de manière intacte et liées entre elles. Au cours de la deuxième étape, la com­pres­sion se poursuit à l’aide d’un logiciel de com­pres­sion spé­ci­fique. Le résultat de la com­pres­sion est effectué grâce à un programme spé­ci­fique. Le résultat, qui est décrit comme étant pro­gres­sif, compact ou encore solide, est obtenu par les données archivées et com­pren­nent des ex­ten­sions de fichier comme .tar.gz (ou .tgz) et .tar.bz2 (ou .tbz2). Le programme de com­pres­sion permet également de dézipper ce type de fichiers.

Tar archive : pour pouvoir (dé)com­pres­ser .tar.gz et Co sous Linux

La com­bi­nai­son de tar et d’un outil de com­pres­sion n’est pas obli­ga­toire. En effet vous pouvez également intégrer les fichiers dans une archive, même s’ils ne sont pas encore com­pres­sés ou que vous n’en avez pas le besoin. Si vous souhaitez intégrer par exemple deux documents tests non com­pres­sés test.txt et test2.txt dans une seule archive sous le nom archive.tar, la commande suivante est suf­fi­sante :

tar -cf archive.tar test.txt test2.txt

Pour dé­com­pres­ser cette archive sous Linux, il suffit de remplacer le paramètre -c (créer une nouvelle archive) par -x (extraire les fichiers d’une archive). Dans la mesure où seulement une certaine partie de l’archive ne doit pas être extraite, vous pouvez alors le spécifier comme suit :

tar -xf archive.tar

Sinon, le programme tar offre également la pos­si­bi­lité d’assembler une archive com­pres­sée, par exemple sur la base de la com­pres­sion gzip avec l’extension du format tar.gz. Puisque le programme a im­plé­menté les options de com­pres­sion et de dé­com­pres­sion des logiciels bzip2, xz, compress et gzip, cela peut être effectué avec une seule commande :

tar -czf archive.tar.gz test.txt test2.txt

La commande d’ex­trac­tion.tar.gz diffère de son équi­valent pour les ré­per­toires non com­pres­sés sim­ple­ment en spé­ci­fiant le paramètre du logiciel de com­pres­sion :

tar -xzf archive.tar.gz
Conseil
le paramètre -f, qui peut être utilisé pour sé­lec­tion­ner le fichier d’archive respectif doit toujours être à la dernière place, car les ca­rac­tères suivants sont sys­té­ma­ti­que­ment in­ter­pré­tés comme un fichier.

Les prin­ci­pales commandes de l’ap­pli­ca­tion d’archivage

En plus des options de commande que nous venons d’énumérer plus haut pour l’archivage simple de vos fichiers, il existe un certain nombre d’autres pa­ra­mètres que vous pouvez utiliser pour spécifier le processus d’archivage. Cela comporte notamment les méthodes de com­pres­sion men­tion­nées, mais aussi les options pour les ré­per­toires, ainsi que la vé­ri­fi­ca­tion et l’affichage des archives tar. Ci-dessous un tableau il­lus­trant ces options :

Option Des­crip­tion            
--help Pour afficher le menu aide            
-c Pour créer une nouvelle archive            
-d Compare les fichiers contenus dans l’archive à ceux présents sur le disque dur            
-f Spécifie le nom du fichier d’archive sé­lec­tionné à lire ou à écrire.            
-j Com­pres­ser ou dé­com­pres­ser des archives avec bzip2            
-J Com­pres­ser ou dé­com­pres­ser des archives avec xz            
-k Evite l’écra­se­ment : empêche les fichiers existants d’être remplacés lors de l’ex­trac­tion d’une archive.            
-p Veille à ce que les droits d‘accès restent pendant et après l’ex­trac­tion            
-r Permet d’ajouter des fichiers à une archive            
-t Permet d’afficher le contenu d’une archive            
-u Permet de mettre à jour les fichiers de l‘archive            
-x Pour extraire des données d’une archive            
-z Pour com­pres­ser ou dé­com­pres­ser avec gzip avant d‘archiver            
-Z Com­pres­ser ou dé­com­pres­ser des archives avec Compress            
-A Im­plé­mente le contenu d’une archive dans une autre archive            
-C Mo­di­fi­ca­tions dans le ré­per­toire spécifié pour dé­com­pres­ser les archives sé­lec­tion­nées            
-M Permet de créer, d’afficher ou d’extraire une archive en plusieurs parties.            
-W Vérifie l’archive après le processus d’archivage            
Conseil
certaines options comme l’ajout de fichiers aux archives exis­tantes (-r), ne fonc­tion­nent pas avec les archives com­pres­sés, elles doivent donc d’abord être extraites.

Exemple :

Affichage du contenu d’une archive

tar -tf archive.tar

Mise à jour du contenu d’une archive (ne prend pas en compte les sous-ré­per­toires !)

tar -uf archive.tar Fichier(s)

Dé­ve­lop­per le contenu d’une archive

tar -rf archive.tar Nouveau fichier

Comparer le contenu d’une archive avec le fichier du système (exécution dans le ré­per­toire des archives !)

tar -dvf archive.tar

File Roller : le ges­tion­naire d’archives pour GNOME

File Roller est une interface graphique pour dif­fé­rents logiciels de com­pres­sion et pro­grammes. Son usage ne requiert gé­né­ra­le­ment qu’une seule barre de commandes. Le ges­tion­naire d’archives est dis­po­nible pour les ap­pli­ca­tions desktop GONME et Unity, il est distribué sous licence GNU depuis 2001. Cela permet au contenu de dif­fé­rentes données archivées d’être affiché et dézippé, supprimé ou ajouté. Aussi, la création de données et d’une archive tout comme la mo­di­fi­ca­tion dans un autre format est possible. Pour cela, la fenêtre prin­ci­pale du logiciel compte plusieurs boutons et menus, ainsi qu’une option glisser-déposer. En plus du format d’archivage tar comme .tar.gz, File Roller est com­pa­tible avec les formats suivants :

  • .7z
  • .tar
  • .gzip
  • .bzip2
  • .ar
  • .jar
  • .cpio

De manière standard, File Roller est préins­tallé sur quelques systèmes comme par exemple Linux ou Ubuntu. À l’aide d’un ges­tion­naire, il est possible de l’installer de manière al­ter­na­tive ou encore de le té­lé­char­ger via la page of­fi­cielle. Pour les desktops, il est également possible d’utiliser Ark pour KDE.

Aller au menu principal