Compresser des fichiers depuis un terminal OS X?

50

Dans le Finder, il existe cette merveilleuse possibilité de cliquer avec le bouton droit de la souris sur un fichier ou un répertoire, de sélectionner une compression dans la liste déroulante et de créer un fichier compressé.

Est-il possible de faire la même chose depuis le terminal?

William Jockusch
la source

Réponses:

69

Ça s'appelle zip.

Cela ajoute le fichier fileà l'archive file.zip:

zip file.zip file

Bien sûr, pour ajouter plus de fichiers, ajoutez-les simplement comme arguments à la commande. Départ man zippour plus d'options.

Souvent, vous aurez envie de ne pas inclure ces .DS_Storefichiers fastidieux , par exemple en compressant tout le dossier folderdans folder.zip:

zip -vr folder.zip folder/ -x "*.DS_Store"
slhck
la source
Quel est le (1) après le mot zip?
Jacob Raccuia
@JacobRaccuia Voir superuser.com/questions/297702/…
slhck
Est-ce le vieil zip GNU complet fourni avec OS X?
mwfearnley
@ mwfearnley Sous macOS, c'est Copyright (c) 1990-2008 Info-ZIP. developer.apple.com/legacy/library/documentation/Darwin/…
slhck
lien vers la page de manuel cassée .. il suffit d'utiliser man zipla ligne de commande
commonpike
15

Pour compresser les fichiers exactement comme la commande du Finder les compresserait, utilisez:

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip

Voir man dittopour plus de détails:

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress function-
 ality.
qqbenq
la source
3
C'est la meilleure réponse car elle produit un zip identique, alors que le zip ou le tar de la CLI est différent et légèrement plus petit. Une question similaire avec la même réponse: stackoverflow.com/questions/10738505/…
Henry Blyth
5

Il y a tar (1) et gzip (ou bzip2 ou lzma). Tar est utilisé pour rouler un certain nombre de fichiers dans une archive, tandis que l'un des trois autres est utilisé pour la compresser.

Sur une ligne de commande, vous appelez tar avec quelques options pour créer une archive et la gzip.

Par exemple:

tar -c -z -f myarchive.tar.gz -C /home/username Downloads

Cette willl -c réer ag -Z ipped archives nom -f ile du C hangement-dossier à répertoire et contiendra tous les fichiers dans le dossier Téléchargements. L'option -C est facultative et les arguments du fichier source seront extraits du dossier en cours s'ils sont omis.

Pour référence: tutoriel tar

Рослав Рахматуллин
la source