Cédric Temple

Administrateur système en logiciels libres

GZIP, compression de fichiers

2019-03-30 » notes pour plus tard

Ce contenu est fourni sous licence CC BY-NC-SA 4.0

Notes sur gzip

Compresser un fichier

# compresser le fichier et effacer l'ancien fichier non compressé
gzip monfichier.txt
# compresser le fichier et garder l'ancien fichier non compressé
gzip -k monfichier.txt
gzip --keep monfichier.txt
# compresser et envoyer le résultat vers stdout, l'ancien fichier restant présent
# on redirige vers le fichier compressé
gzip --stdout monfichier.txt > monfichier.txt.gz

Choix du taux de compression

# le plus compressé
gzip -9 monfichier.txt
gzip --best monfichier.txt
# le moins compressé
gzip -1 monfichier.txt
gzip --fast monfichier.txt
# par défaut, le taux de compression est -6

Décompression

# commandes équivalentes
gzip -d monfichier.txt.gz
gzip --decompress monfichier.txt.gz
gzip --uncompress monfichier.txt.gz
gunzip monfichier.txt.gz
# décompression vers sortie standard pour passage à un autre programme
gunzip --stdout monfichier.txt.gz | monprogramme ...
# Très utile pour importer un dump SQL par exemple :
gunzip --stdout mondump.sql.gz | mysql -p -u <user> <database> 

Travail avec d’autres programmes

Lorsqu’on enchaîne les commandes avec pipe, il faut connaître le comportement de gzip/gunzip. Si on passe des données sur l’entrée standard, alors gzip/gunzip va sortir les données vers sa sortie standard et non vers un fichier. Exemple :

monprogramme | gunzip > monfichier_decompresse.txt
monprogramme | gunzip | grep ... | ... > monfichier_decompresse.txt
# autre moyen avec gunzip
gunzip < monfichiercompresse.sql.gz | mysql -p -u <user> <database> 

Ce contenu est fourni sous licence CC BY-NC-SA 4.0