Comment créer et extraire des archives zip à partir de la ligne de commande?
Comment créer et extraire des archives zip à partir de la ligne de commande?
Réponses:
Généralement , on utilise tar
pour créer une archive non compressée et soit gzip
ou bzip2
pour compresser cette archive. Les commandes gunzip
et correspondantes bunzip2
peuvent être utilisées pour décompresser ladite archive, ou vous pouvez simplement utiliser des indicateurs sur la tar
commande pour effectuer la décompression.
Si vous faites spécifiquement référence au format de fichier Zip , vous pouvez simplement utiliser les commandes zip
et unzip
.
Pour compresser:
zip squash.zip file1 file2 file3
ou 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.
zip -r9 archive.zip files...
syntaxe (-r = récursive -9 = compression maximale).
zip
pouvez créer de nombreuses versions différentes d’archives .ZIP et utiliser de nombreux compresseurs. D'autre part, il existe un certain nombre d'autres outils de compression portant le même nom: 7-Zip, gzip, bzip2, rzip, etc. qui ne sont pas interchangeables.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
pour extraire dans un nouveau répertoire distinct ( myfolder
) au lieu de placer tous les fichiers directement dans le répertoire en cours, ce qui peut être gênant si le fichier zip contient de nombreux fichiers et répertoires à son niveau supérieur. Cela imite le fonctionnement de la plupart des outils de décompression de l'interface utilisateur.
Il existe un très grand nombre de façons différentes de compresser et de décompresser sous des dérivés UNIX, je suppose donc que vous vouliez dire «zip» au sens générique plutôt que sous un format de fichier spécifique .
Vous pouvez compresser des fichiers (au format compressé) avec le tar
programme GNU :
tar -zcvf myfile.tgz .
qui fera le répertoire courant. Remplacez-le .
par d'autres noms de fichiers si vous voulez autre chose.
Pour décompresser ce fichier, utilisez:
tar -zxvf myfile.tgz
En supposant que vous disposiez d’une tar
capacité suffisante pour la compression et la combinaison de fichiers.
Sinon, vous pouvez simplement utiliser tar cvf
suivi de gzip
(encore une fois, si disponible) pour la compression et gunzip
suivi de tar xvf
.
Pour un traitement spécifique des fichiers au format ZIP, je vous recommande de télécharger 7zip
et d’utiliser ce dernier - il reconnaît une grande variété de formats de fichiers, y compris le fichier ZIP.
tar jcvf file.tar.bz2...
pour compresser au format bzip2 ou tar Jcvf file.tar.xz ...
pour la compression xz.
Si les packages zip et unzip ne sont pas installés et que vous avez java, vous pouvez utiliser jar
pour décompresser:
jar -xf file.zip
Eh bien, en ce qui concerne la distribution de fichiers pour divers systèmes d'exploitation, je recommanderais 7-zip .
En général , dans le paquet p7zip
, vous aurez la 7z
et 7za
commande, avec laquelle vous pouvez créer vos propres archives 7z.
7za
peut également décompresser des archives zip standard ( pkzip ) (et les créer également avec le -tzip
commutateur).
Compression:
7za a archive.7z file1 file2 directory/
Décompressant:
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 archives, utilisez le -J
commutateur avec tar
:
tar cJf archive.tar.xz file1 file2 dir
xz
est un outil UNIX, qui utilise LZMA2 pour la compression, mais fonctionne de la façon gz
, bz2
, etc fonctionne. Cela fonctionne même comme un filtre.
7z ne crée pas d'archives contenant des informations complètes sur le système de fichiers sous UNIX. Il est donc nécessaire de les utiliser tar
avant d'utiliser 7z (mais puisque 7z stocke d'autres informations sur le tar
fichier, je vous recommande de l'utiliser xz
, car il est conçu pour cela):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
: c’est un joli petit outil qui facilite l’utilisation de nombreux compresseurs. Lier cela à a
et créer une archive devient a arc.7z folder/
ou extraire un simplea arc.7z
unzip <filename>
et
zip -r archive.zip <filename> [filename]
Vous devrez vous assurer que ces commandes sont installées via votre gestionnaire de paquets. 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 aussi le faire
bsdtar acf bravo.zip alfa.jpg
Ou:
bsdtar xf bravo.zip
tar
présente l’avantage de prendre en charge un certain nombre de formats de compression supplémentaires par rapport à GNU tar
et à d’autres formats tar
. Le plus grand avantage est peut-être qu'il le fait en utilisant une tar
syntaxe semblable à celle-ci . Vous pouvez certainement utiliser 7z
, unrar
, unzip
, etc à partir de la ligne de commande, mais ils utilisent une autre syntaxe.
La réponse la plus standard est pax
, qui est recommandé sur cpio
et tar
.
Contrairement à cpio
et POSIX tar
, mais comme GNU tar
, pax
est capable d’archiver des fichiers et de compresser l’archive. Ce comportement est différent de celui zip
qui compresse chaque fichier avant de le placer dans l'archive.
pax
les archives zip sont supportées?
pax
archives non plus!
Cela ne concerne que l'extraction.
Pour cela, j'ai commencé à utiliser dtrx
.
L'essentiel est d'éliminer la complexité. Donc, vous ne lui transmettez aucune archive et elle détermine ce qu’il faut en faire. 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
Installez-le.
Je me trouve souvent en train d'essayer de compresser les fichiers modifiés dans mon répertoire de travail, que ce soit pour copier tous les fichiers modifiés dans un autre répertoire de travail sandbox ou pour les conserver pendant un court instant, car je souhaite annuler certaines des modifications.
Dans ce cas, je copie la liste des fichiers modifiés dans un fichier temporaire et l’utilise zip
avec l’option -@
.
Disons que j'ai modifié les fichiers Foo.h, Bar.cc et TestBar.cc.
Supposons que je crée un fichier appelé modified-files.txt dont le contenu est le suivant:
Foo.h
Bar.cc
TestBar.cc
J'exécute la commande suivante pour compresser ces fichiers:
cat modified-files.txt | zip modified-files.zip -@