« Compression de données » : différence entre les versions

De Wiki doc

Page créée avec « Category:linux Cet article a pour but de recenser différentes manières de compresser/décompresser des données sous des systèmes Linux. =Archive tar= ==Compresser... »
 
Décompresser ZIP : Ajout d'une méthode pour décompresser plusieurs archives en une seule commande.
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 39 : Ligne 39 :


{{astuce|Avec l'option <source lang="bash" inline>-d</source>, il est possible de spécifier l'emplacement d'extraction de l'archive en lieu et place du répertoire courant.}}
{{astuce|Avec l'option <source lang="bash" inline>-d</source>, il est possible de spécifier l'emplacement d'extraction de l'archive en lieu et place du répertoire courant.}}
Pour décompresser plusieurs archives ''ZIP'' en une seule commande, la méthode [https://chrisjean.com/unzip-multiple-files-from-linux-command-line/ suivante] peut-être utilisée :
unzip '*.zip'


=Archive 7zip=
=Archive 7zip=
Ligne 66 : Ligne 69 :
  gzip -9 mon_fichier > mon_fichier.gz
  gzip -9 mon_fichier > mon_fichier.gz


{{attention|La commande <source lang="bash" inline>gzip</source> remplace le fichier original par le fichier compressé. Prenez en compte ce paramètre pour ne pas avoir de mauvaises surprises.}}
{{attention|La commande <source lang="bash" inline>gzip</source> remplace le fichier original par le fichier compressé. Prenez en compte ce paramètre pour ne pas avoir de mauvaises surprises. Il est possible de garder le fichier original avec l'option <source lang="bash" inline>-k</source>.}}


{{astuce|Le paramètre <source lang="bash" inline>-9</source> (noté <source lang="bash" inline>-#</source> dans le ''man'') est le taux de compression ('''1''' étant le plus faible/rapide jusqu'à '''9''' le plus fort/rapide). En l'absence de ce paramètre, c'est le niveau '''6''' qui est utilisé.}}
{{astuce|Le paramètre <source lang="bash" inline>-9</source> (noté <source lang="bash" inline>-#</source> dans le ''man'') est le taux de compression ('''1''' étant le plus faible/rapide jusqu'à '''9''' le plus fort/rapide). En l'absence de ce paramètre, c'est le niveau '''6''' qui est utilisé.}}
Ligne 72 : Ligne 75 :
==Décompresser Gzip==
==Décompresser Gzip==
  gunzip mon_fichier.gz
  gunzip mon_fichier.gz
Directement sur un volume de type bloc
gunzip -k -c fichier.img.gz | dd of=/dev/mmcblk0 bs=4M conv=fsync status=progress
=Format Xz=
Xz se base sur l’algorithme LZMA2 et propose le meilleur taux de  compression qui soit.
==Compresser Xz==
xz -z mon_fichier
ou
xz --compress mon_fichier
{{astuce|La compression remplace le fichier original par le fichier compressé. Pour le garder, il faut ajouter l'option <source lang="bash" inline>-k</source>.}}
{{info|Il est également possible d'utiliser un chiffre (de 0 à 9) pour le taux de compression comme pour Gzip. La valeur "6" est définie par défaut.}}
==Décompresser Xz==
xz -d mon_fichier.xz
ou
unxz mon_fichier.xz
Aussi étrange que cela puisse paraître, l'outil ne permet pas de décompresser dans un répertoire particulier. Pour y remédier, il faut envoyer le flux de sortie vers le ''stdout'' de la console et le rediriger dans le fichier voulu :
xz -d mon_fichier.xz -c > /chemin/votre_fichier
''Note : l'option <source lang="bash" inline>-c</source> implique automatiquement le <source lang="bash" inline>-k</source> pour garder le fichier d'origine.''
{{astuce|''Xz'' peut être assez lent. Aussi, s'il s'agit d'un fichier ''ISO'' que vous voulez copier au niveau des blocs d'un support de démarrage, vous pouvez envoyer la décompression [https://askubuntu.com/questions/1193232/how-do-i-use-an-img-xz-file-or-get-an-img-file-from-it directement] vers ''dd'' qui se chargera d'écrire sur votre mémoire (ça fait gagner un sacrés temps): <source lang="bash" inline>xzcat VotreFichier.xz | dd of=/dev/VotreDisque bs=4M conv=fsync status=progress</source>.}}


=Sources=
=Sources=
Ligne 79 : Ligne 108 :
** '''7z''': https://linux.die.net/man/1/7z
** '''7z''': https://linux.die.net/man/1/7z
** '''gzip''': https://linux.die.net/man/1/gzip
** '''gzip''': https://linux.die.net/man/1/gzip
** '''xz''': https://linux.die.net/man/1/xz
* https://www.commentcamarche.com/faq/955-linux-compresser-decompresser-un-fichier-zip
* https://superuser.com/questions/216617/view-list-of-files-in-zip-archive-on-linux
* https://superuser.com/questions/216617/view-list-of-files-in-zip-archive-on-linux
* https://www.it-connect.fr/creer-une-archive-7-zip-chiffree-en-ligne-de-commande-sous-linux/
* https://www.it-connect.fr/creer-une-archive-7-zip-chiffree-en-ligne-de-commande-sous-linux/
* https://superuser.com/questions/368470/7-zip-command-line-to-extract-a-folder-from-an-archive
* https://superuser.com/questions/368470/7-zip-command-line-to-extract-a-folder-from-an-archive
* https://www.it-connect.fr/la-compression-avec-xz-sous-linux/

Dernière version du 5 janvier 2021 à 00:19

Cet article a pour but de recenser différentes manières de compresser/décompresser des données sous des systèmes Linux.

Archive tar

Compresser tar

INFORMATION

{{{1}}}

En Gzip

tar czvf mon_archive.tar.gz mon_dossier

En Bzip2

tar cjvf mon_archive.tar.xz mon_dossier

Lister tar

tar tf mon_archive.tar.gz

Décompresser tar

En Gzip

tar xzvf mon_archive.tar.gz mon_dossier

En Bzip2

tar xjvf mon_archive.tar.xz mon_dossier

INFORMATION

{{{1}}}

ASTUCE

{{{1}}}

Archive ZIP

Zip est universel, globalement tout les systèmes d'exploitation pourront en faire quelque chose. Sous Debian, les commandes <source lang="bash" inline>zip</source> et <source lang="bash" inline>unzip</source> se trouvent dans le paquet <source lang="bash" inline>zip</source>.

Compresser ZIP

zip -r mon_archive.zip mon_dossier

Lister ZIP

unzip -l mon_archive.zip

Décompresser ZIP

unzip mon_archive.zip

ASTUCE

{{{1}}}

Pour décompresser plusieurs archives ZIP en une seule commande, la méthode suivante peut-être utilisée :

unzip '*.zip'

Archive 7zip

Sous Debian, la commande <source lang="bash" inline>7z</source> se trouve dans le paquet <source lang="bash" inline>p7zip-full</source>.

Compresser 7zip

7z a mon_archive.7z mon_dossier

ASTUCE

{{{1}}}

Lister 7zip

7z l mon_archive.7z

INFORMATION

Même chiffré, le nom des fichiers archivés sont listables.

Décompresser 7zip

7z x mon_archive.7z

INFORMATION

Si l'archive a été chiffrée, le mot de passe sera automatiquement demandé à la décompression.

ASTUCE

{{{1}}}

Format Gzip

Gzip n'est pas une archive, c'est réellement une compression de fichier. Il est possible de concaténer plusieurs fichiers dans un Gzip (voir la section Advanced Usage du man).

Compresser Gzip

gzip -9 mon_fichier > mon_fichier.gz

ATTENTION

{{{1}}}

ASTUCE

{{{1}}}

Décompresser Gzip

gunzip mon_fichier.gz

Directement sur un volume de type bloc

gunzip -k -c fichier.img.gz | dd of=/dev/mmcblk0 bs=4M conv=fsync status=progress

Format Xz

Xz se base sur l’algorithme LZMA2 et propose le meilleur taux de compression qui soit.

Compresser Xz

xz -z mon_fichier

ou

xz --compress mon_fichier

ASTUCE

{{{1}}}

INFORMATION

Il est également possible d'utiliser un chiffre (de 0 à 9) pour le taux de compression comme pour Gzip. La valeur "6" est définie par défaut.

Décompresser Xz

xz -d mon_fichier.xz

ou

unxz mon_fichier.xz

Aussi étrange que cela puisse paraître, l'outil ne permet pas de décompresser dans un répertoire particulier. Pour y remédier, il faut envoyer le flux de sortie vers le stdout de la console et le rediriger dans le fichier voulu :

xz -d mon_fichier.xz -c > /chemin/votre_fichier

Note : l'option <source lang="bash" inline>-c</source> implique automatiquement le <source lang="bash" inline>-k</source> pour garder le fichier d'origine.

ASTUCE

{{{1}}}

Sources