Comment puis-je créer et extraire des archives Zip à partir de la ligne de commande?
En général, on utilise tar
pour créer une archive non compressée et gzip
ou bzip2
Pour compresser cette archive. Les commandes gunzip
et bunzip2
Correspondantes peuvent être utilisées pour décompresser ladite archive, ou vous pouvez simplement utiliser des indicateurs sur la commande tar
pour effectuer la décompression.
Si vous faites référence spécifiquement au format de fichier Zip , vous pouvez simplement utiliser les commandes Zip
et unzip
.
Pour compresser:
Zip squash.Zip file1 file2 file3
ou pour compresser un répertoire
Zip -r squash.Zip dir1
Pour décompresser:
unzip squash.Zip
cela le décompresse dans votre répertoire de travail actuel.
Il existe vraiment vaste nombre de façons différentes de compresser et de décompresser sous les dérivés UNIX donc je vais supposer que vous vouliez dire "Zip" dans le sens générique plutôt qu'un spécifique format de fichier.
Vous pouvez compresser des fichiers (au format compressé) avec le programme GNU tar
:
tar -zcvf myfile.tgz .
qui fera le répertoire courant. Remplacer .
avec d'autres noms de fichiers si vous voulez autre chose.
Pour décompresser ce fichier, utilisez:
tar -zxvf myfile.tgz
Cela suppose bien sûr que vous disposez d'un tar
capable de faire la compression ainsi que de combiner des fichiers en un seul.
Sinon, vous pouvez simplement utiliser tar cvf
suivi de gzip
(à nouveau, si disponible) pour la compression et gunzip
suivi de tar xvf
.
Pour une gestion spécifique des fichiers au format Zip, je recommanderais de télécharger 7Zip
et en utilisant cela - il reconnaît une énorme variété de formats de fichiers, y compris le Zip.
Si vous n'avez pas installé de packages Zip et décompressez et que vous avez Java, vous pouvez utiliser jar
pour décompresser:
jar -xf file.Zip
Eh bien, quand il s'agit de distribuer des fichiers pour une variété de systèmes d'exploitation, je recommanderais 7-Zip .
Habituellement dans le package p7Zip
, vous obtiendrez le 7z
et 7za
, avec laquelle vous pouvez créer vos propres archives 7z.
7za
peut également décompresser les archives Zip standard ( pkzip ) (et les créer également avec le -tzip
commutateur).
Compression:
7za a archive.7z file1 file2 directory/
Décompression:
7za x archive.7z
Il peut également créer des archives auto-extractibles avec le -sfx
commutateur:
7za a -sfx archive.exe files1 file2 dir
Je recommande cette méthode au cas où les utilisateurs de Windows ne pourraient pas ouvrir les archives 7z (au cas où vous voudriez conseiller un outil pour cela: PeaZip ).
Si vous souhaitez utiliser le même algorithme de compression avec vos tarballs, utilisez le -J
changer avec tar
:
tar cJf archive.tar.xz file1 file2 dir
xz
est un outil UNIX, qui utilise LZMA2 pour la compression, mais fonctionne comme gz
, bz2
, etc. fonctionne. Cela fonctionne même comme un filtre.
7z ne crée pas d'archives avec des informations complètes sur le système de fichiers sous UNIX, vous devez donc utiliser tar
avant d'utiliser 7z (mais comme 7z stocke d'autres informations sur le fichier tar
, je recommande en utilisant xz
, tel qu'il est conçu pour cela):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
unzip <filename>
et
Zip -r archive.Zip <filename> [filename]
Vous devrez vous assurer que ces commandes sont installées via votre gestionnaire de packages. Ce n'est pas plus difficile que d'utiliser autre chose sur la ligne de commande. C'est certainement plus simple que de créer des archives avec tar.
BSD Tar peut également le faire
bsdtar -a -c -f sunday.Zip sunday.jpg
Ou:
bsdtar -x -f sunday.Zip
La réponse la plus standard est pax
, ce qui est recommandé par rapport à cpio
et tar
.
Contrairement à cpio
et POSIX tar
, mais comme GNU tar
, pax
peut à la fois archiver des fichiers et compresser le fichier Ce comportement est différent de Zip
, qui compresse chaque fichier avant de le placer dans l'archive.
Cela ne couvre que l'extraction.
Pour cela, j'ai commencé à utiliser dtrx
.
Son but est de supprimer la complexité. Il vous suffit donc de lui transmettre n'importe quelle archive et il comprend ce qui doit être fait avec. Zip, tar, gz ... L'utilisation est toujours la même - dtrx archive.Zip
. Il pose quelques questions et vous avez terminé.
dtrx
est disponible dans la plupart des référentiels, vous pouvez donc apt
| yum
l'installer.
Je me retrouve souvent à essayer de compresser les fichiers modifiés dans mon répertoire de travail - soit pour copier tous les fichiers modifiés dans un autre répertoire de travail sandbox, soit pour les conserver pendant un court moment parce que je veux annuler certaines des modifications.
Dans ce cas, je copie la liste des fichiers modifiés dans un fichier temporaire et j'utilise Zip
avec l'option -@
.
Disons que j'ai modifié les fichiers Foo.h, Bar.cc et TestBar.cc.
Disons que je crée un fichier appelé modified-files.txt dont le contenu est:
Foo.h
Bar.cc
TestBar.cc
J'exécute la commande suivante pour compresser ces fichiers:
cat modified-files.txt | Zip modified-files.Zip -@