Outils pour utilisateurs

Outils du site


informatique:linux:compresser_des_fichiers_en_ligne_de_commande

Ceci est une ancienne révision du document !


Compresser un ou des fichiers en ligne de commande

Première méthode, avec zip

L'avantage est qu'il s'agit d'un format universellement reconnu. Mais le taux de compression est faible.

zip -rv9 fichier.zip /chemin/source/.

  • -r pour récursif;
  • -v pour verbeux;
  • -9 pour compresser au maximum;

Le point final permet d'inclure les fichier cachés.

Pour décompresser, on utilise bien sûr unzip fichier.zip pour extraire dans le dossier courant, sinon unzip fichier.zip -d /chemin

Les avantages de cette méthode sont la compatibilité du format, la relative vitesse d'exécution et la simplicité de la syntaxe. Un dossier générique de 224 Mo contenant des pdf, doc, xls, jpg, tiff, txt est compressé à 145 Mo en 24 sec.

Seconde méthode, offrant une bonne compression avec pbzip2

pbzip2 permet d'utiliser la compression bzip2 sur plusieurs cœurs en parallèle, ce qui permet d'allier un taux de compression satisfaisant à une rapidité correcte.

tar cvf output.bz2 -I pbzip2 chemin/

Où :

  • -c = créer archive
  • -v = verbeux
  • -f = préciser le fichier de sortie

Pour décompresser : tar -xvf output.bz2

31s pour compresser un dossier générique de 224 Mo contenant des pdf, doc, xls, jpg, tiff, txt en un fichier de 139 Mo.

Sa syntaxe compliquée (je déteste l'idée de devoir passer par tar pour compresser un dossier) fait que je ne l'utilise jamais.

Troisième méthode, offrant la meilleure compression et la syntaxe la plus simple, avec lrzip ❤️

J'aime beaucoup lrzip car sa syntaxe est très simple et le taux de compression est très bon. Par défaut, ça utilise lzma et rzip, qui allient rapidité et très bon taux de compression.

On peut ajouter l'option -z pour utiliser la compression zpaq. C'est BEAUCOUP plus lent, pour un taux de compression certes un peu plus élevé mais qui n'a de sens à mon humble avis que pour des archives gigantesques.

Petite particularité : la commande lrzip de base ne permet de compresser qu'un seul fichier (typiquement une archive tar). Pour compresser directement un dossier, il faut utiliser lrztar (fourni avec lrzip).

  • Pour une seul fichier : lrzip (-z) fichier
  • Pour un dossier lrztar (-z) chemin/

Pour décompresser : lrzip -d fichier.lrz ou lrztar -d fichier.lrz

Le taux de compression est le meilleur. Un dossier générique de 224 Mo contenant des pdf, doc, xls, jpg, tiff, txt est réduit à 124 Mo en 53 sec grâce à l'utilisation du parallélisme. Alliée à sa syntaxe enfantine, c'est de loin ma méthode favorite.
informatique/linux/compresser_des_fichiers_en_ligne_de_commande.1598976508.txt.bz2 · Dernière modification : 01/09/2020 18:08 de lauberterio