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 tarpour créer une archive non compressée et soit gzipou bzip2pour compresser cette archive. Les commandes gunzipet correspondantes bunzip2peuvent être utilisées pour décompresser ladite archive, ou vous pouvez simplement utiliser des indicateurs sur la tarcommande pour effectuer la décompression.
Si vous faites spécifiquement référence au format de fichier Zip , vous pouvez simplement utiliser les commandes zipet 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).
zippouvez 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.zippour 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 tarprogramme 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 tarcapacité suffisante pour la compression et la combinaison de fichiers.
Sinon, vous pouvez simplement utiliser tar cvfsuivi de gzip(encore une fois, si disponible) pour la compression et gunzipsuivi de tar xvf.
Pour un traitement spécifique des fichiers au format ZIP, je vous recommande de télécharger 7zipet 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 jarpour 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 7zet 7zacommande, avec laquelle vous pouvez créer vos propres archives 7z.
7zapeut également décompresser des archives zip standard ( pkzip ) (et les créer également avec le -tzipcommutateur).
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 -sfxcommutateur:
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 -Jcommutateur avec tar:
tar cJf archive.tar.xz file1 file2 dir
xzest 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 taravant d'utiliser 7z (mais puisque 7z stocke d'autres informations sur le tarfichier, 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 à aet 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
tarprésente l’avantage de prendre en charge un certain nombre de formats de compression supplémentaires par rapport à GNU taret à d’autres formats tar. Le plus grand avantage est peut-être qu'il le fait en utilisant une tarsyntaxe 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 cpioet tar.
Contrairement à cpioet POSIX tar, mais comme GNU tar, paxest capable d’archiver des fichiers et de compresser l’archive. Ce comportement est différent de celui zipqui compresse chaque fichier avant de le placer dans l'archive.
paxles archives zip sont supportées?
paxarchives 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é.
dtrxest disponible dans la plupart des référentiels, vous pouvez donc apt| yumInstallez-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 zipavec 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 -@