Commande de 'gzip' un dossier?


66

Je suis nouveau dans l'invite de commande Mac. Comment créez-vous un gzip d'un dossier sous Mac OS X? Quelques personnes m'ont dit que si vous voulez créer un gzip d'un dossier, vous devez le "tar" d'abord, puis le "gzip". Est-ce correct?


1
Ce n'est pas une question de programmation? Votre publication est étiquetée avec objective-cmais vous parlez de la ligne de commande.
Rakuo15

Réponses:


130

Tar est l'outil d'archivage et gzip est l'outil de compression. Pour compresser un répertoire complet, vous devez d’abord l’archiver dans un seul fichier. C'est ce que le travail est tar. et puis vous compressez le fichier archivé. Vous pouvez effectuer les deux tâches dans une seule commande tar avec l'option appropriée.

tar -czf nom_dossier.tar.gz nom_dossier /

Si vous ne voulez pas créer d'archive tar (vous voulez peut-être ne compresser qu'un seul fichier), vous pouvez utiliser directement la commande gzip.

gzip fichier.txt

Cela créera un fichier compressé nommé file.txt.gz


30
Il convient de mentionner que les options -czfaprès tarsont pour: cindique que vous souhaitez créer une archive tar, zapplique gzipsur l'archive tar intermédiaire, et fest le nom du fichier final ultérieure folder_name.tar.gz.
fideli

13
Attention: gzip file.txtremplace le fichier d'origine.
Zoltán

6
@ Zoltán Utilisé gzip -k file.txtpour "garder" (ne pas supprimer) le fichier d'entrée.
Thohl

13

Si quelqu'un trouve encore cette question en cherchant "gzip sous Mac", j'ai écrit un guide qui pourrait être utile à quelqu'un d'autre. Ici ça va:

Compression

La commande la plus basique compressera le fichier filename.extet le remplacera ensuite filename.ext.gzdans le même répertoire.

gzip filename.ext

Si vous ne voulez pas perdre votre fichier d'origine, vous devez alors diriger la sortie de gzip -cvers un fichier.

gzip -c filename.ext > anotherfile.gz

Nous pouvons également compresser à partir d'une entrée standard afin de pouvoir compresser la sortie d'autres commandes.

cat filename.ext | gzip > anotherfile.gz

OS X est également livré avec les commandes compresset uncompress. Ils constituent un gzip "plus intelligent", car il ne compresse pas le fichier s'il grossit après le processus de compression. La commande suivante remplace filename.extpar filename.ext.Zdans le même répertoire.

compress filename.ext

Décompresser

Pour restaurer un fichier à son état naturel non compressé, vous pouvez utiliser gzip ou un autre des wrappers. Le mode de décompression de gzip est appelé avec le -ddrapeau. Ce mode remplacera le fichier filename.ext.gzavec filename.extdans le même répertoire. Il existe également un raccourci appelé gunzipqui fera la même chose.

gzip -d filename.ext.gz
gunzip filename.ext.gz

Nous pouvons également diriger le fichier décompressé vers la sortie standard pour l'enregistrer dans un autre fichier.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Un autre moyen rapide de lire le contenu d’un gzip sur la sortie standard est zcatqu’il est fondamentalement identique à un appel, gzip -cdmais vous pouvez appeler plusieurs fichiers et les faire concaténer de la même manière que la catcommande concat des fichiers texte. Le seul inconvénient est que vos fichiers doivent être suffixés du .Zsuffixe pour que cela fonctionne ...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Mais n'ayez crainte! zcatcela reste utile, car il peut décompresser depuis la sortie standard. Vous pouvez donc essentiellement diriger vos fichiers vers zcat pour les décompresser sur la fenêtre du terminal.

cat filename.ext.gz | zcat

Ceci est très utile si vous devez vérifier le contenu d'un fichier très rapidement, et vous pouvez même sauvegarder la sortie de zcat dans un fichier, tout aussi facilement.

cat filename.ext.gz | zcat > anotherfile

Le uncompresswrapper fonctionne comme gzip -cdmais il cherche les fichiers avec l’extension .Z pour les remplacer dans le répertoire en cours, il vous suffit donc de spécifier le nom du fichier que vous voulez restaurer, mais c’est bien si vous l’appelez avec l’extension .Z, comme le programme l'ignorera.

compress filename.ext
uncompress filename.ext

J'espère que vous trouverez mon guide utile :)


4

MacOS X est Unix donc cela devrait fonctionner (cela fonctionne sous GNU / Linux)

dossier czvf compressé.tar.gz de tar

3

Oui, vous devez d'abord télécharger le répertoire. La commande tar peut faire les deux:

tar -czf archiv.tar.gz mydir/

extraire votre archiv:

tar -xzf archiv.tar.gz

3

Pour ajouter à la réponse de @taskinoor: si vous utilisez une version à fichier unique, alias

gzip file.txt

sachez que le fichier d'origine (fichier.txt) sera supprimé et que vous n'aurez que fichier.txt.gz

Je mettrais ceci comme commentaire mais n'ai pas assez de karma pour faire ça: =)


1
gzip --keep file.txtgardera l'original et créer file.txt.gz. Voir gzip --help.
Blaise

1

Oui, c'est correct gzipne peut que compresser un fichier. tarencode le contenu du répertoire dans un seul fichier, qui peut encore être compressé en utilisant gzip, bzip2, lzmaou toute autre chose.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.