Comment décompresser un fichier zip à partir du Terminal?

Je viens de télécharger un .fichier zip à partir d'Internet. Je veux utiliser le terminal pour décompresser le fichier. Quelle est la bonne façon de procéder?

Si le unzip la commande n'est pas déjà installée sur votre système, puis exécutez:

sudo apt-get install unzip

Après avoir installé l'utilitaire de décompression, si vous souhaitez extraire vers un dossier de destination particulier, vous pouvez utiliser:

unzip file.zip -d destination_folder

Si les répertoires source et de destination sont les mêmes, vous pouvez simplement faire:

unzip file.zip

Vous pouvez simplement utiliser unzip.

Installez-le:

apt-get install unzip

Et l'utiliser:

cd /path/to/fileunzip file.zip

Un outil plus utile est 7z, qui compresse et décompresse une gamme de formats de compression, notamment lzma, généralement le protocole offrant les taux de compression les plus élevés.

Cette commande installe 7z:

sudo apt-get install p7zip-full

Cette commande répertorie le contenu du zip:

7z l zipfile.zip

Cette commande extrait le contenu du zip:

7z x zipfile.zip

Vous pouvez utiliser:

unzip file.zip -d somedir

pour extraire vers yourpath/somedir

Si vous souhaitez extraire vers un chemin absolu, utilisez

sudo unzip file.zip -d /somedir

Utilisation d'outils de script: Perl et Python

De nombreuses réponses ici mentionnent des outils qui nécessitent une installation, mais personne n'a mentionné que deux des langages de script d'Ubuntu, Perl et Python, sont déjà livrés avec tous les modules nécessaires qui vous permettent de décompresser une archive zip, ce qui signifie que vous n'avez pas besoin d'installer quoi que ce soit d'autre. Utilisez simplement l'un des deux scripts présentés ci-dessous pour faire le travail. Ils sont assez courts et peuvent même être condensés en une commande d'une seule ligne si nous le voulions.

Python

#!/usr/bin/env python3import sysfrom zipfile import PyZipFilefor zip_file in sys.argv[1:]:    pzf = PyZipFile(zip_file)    pzf.extractall()

Utilisation:

./pyunzip.py master.zip 

ou

python3 pyunzip.py master.zip

Perl

#!/usr/bin/env perluse Archive::Extract;foreach my $filepath (@ARGV){    my $archive = Archive::Extract->new( archive => $filepath );    $archive->extract;}

Utilisation:

./perlunzip master.zip

ou

perl perlunzip.pl master.zip

Voir aussi

Si les répertoires source et de destination sont les mêmes, vous pouvez simplement faire:

unzip filename.zip

Je préfère bsdtar de unzip/zip. Pour l'extraction, ils sont assez similaires:

bsdtar -x -f /one/two/three/four.zip -C /fiveunzip /one/two/three/four.zip -d /five

Cependant pour la fermeture à glissière, bsdtar gagner. Dites que vous avez cette entrée:

/one/two/three/alfa/four.txt/one/two/three/bravo/four.txt

et je veux ça dans le fichier zip:

alfa/four.txtbravo/four.txt

C'est facile avec bsdtar:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip n'a pas le -d option comme décompresser, vous n'avez donc aucun moyen d'atteindre ce qui précède à moins que vous cd premier.

Voici la description détaillée des options que je trouve utiles:

Commande: décompressez - [option] chemin zip.               - d un répertoire facultatif dans lequel extraire les fichiers-l Répertorie les fichiers d'archive.               -P mot de passe Utiliser mot de passe pour déchiffrer les entrées de fichier zip chiffrées (le cas échéant).               - t Fichiers d'archive de test avec contrôle de redondance cyclique.                 - u Mettre à jour les fichiers existants.                 - z archive commentaire

Suivez ces instructions: http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/

Installer unzip

Donc, tout d'abord, nous devons installer unzip sur notre système s'il n'est pas installé. la commande unzip est utilisée pour extraire des fichiers de l'archive aZIP.

Exécutez la commande suivante pour installer unzip

sudo apt-get install unzip

unzip Syntaxe

$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

Suivez maintenant les étapes ci-dessous:

Décompressez le Fichier

OPTION 1 – Si le fichier Zip se trouve dans le même répertoire / dossier que votre terminal et que nous voulons l'extraire dans le répertoire de travail actuel.

Utilisez la commande suivante pour réaliser le scénario décrit ci-dessus

sudo unzip zip_file_name.zip

si le fichier zip est protégé par un mot de passe, utilisez la commande suivante :

sudo ubzip -P zip_file_name.zip

Assurez-vous d'utiliser -P (P majuscule) et non-p car les options sont différentes.

OPTION 2 – Si le fichier zip n'est pas présent dans le même répertoire et que nous voulons extraire/décompresser le fichier dans un répertoire différent.

Utilisez la commande suivante pour réaliser le scénario décrit ci-dessus

sudo unzip path/filename.zip -d another_path_or_same_path

si nous n'utilisons pas l'option-d, le fichier sera extrait dans le répertoire presentworking.

Et si le fichier zip est protégé par mot de passe, nous pouvons également utiliser -P.

utiliser la commande tar sous Linux / Unix

tar est un acronyme pour Tape Archive. la commande tar est utilisée pour manipuler les archives sous Linux / Unix. Les administrateurs système utilisent fréquemment tarcommand pour extraire un tas de fichiers ou de répertoires dans des archives hautement compressées appelées tarball ou tar, bzip etgzip dans Linux / Unix système.

syntaxe tar

tar [OPTION...] [FILE]...

Ou

drapeaux requis tar

tar {-r|-t|-c|-x|-u}

drapeaux facultatifs tar

tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ][-Number] [-b Blocks] [-f Archive]

Exemple

Créer un Fichier d'Archive tar en Compressant un Répertoire ou un Seul Fichier

La commande terminal ci-dessous va créer un .tar fichier appelésample_dir.tar avec un annuaire /home/codebind/sample_dir ousample_dir dans le répertoire de travail actuel.

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar

enter image description here

Voici ce que ces drapeaux (-cvf) signifient réellement

-c, --create- créer une nouvelle archive

-x, --extract, --get- extraire des fichiers d'une archive

-f, --file ARCHIVE- utiliser un fichier d'archive ou une ARCHIVE de périphérique

Créer tar.gz ou tgz Archiver le Fichier en Compressant un Répertoire ou un Seul Fichier

La commande terminal ci-dessous va créer un .tar.gz fichier appelésample_dir.tar.gz avec un annuaire /home/codebind/sample_dir ousample_dir dans le répertoire de travail actuel.

Notez que nous avons ajouté un indicateur supplémentaire -z à la commande.Voici ce que theflag-z signifie réellement

-z, --gzip, --gunzip --ungzip- Compresser l'archive avec gzip

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar.gz

enter image description here

La commande ci-dessous créera un .fichier tgz. Un ceci pour remarquer istar.gz et tgz sont tous deux similaires.

ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tgz

Compression de Plusieurs Répertoires ou Fichiers à la fois

Disons, Par exemple, que nous voulons compresser le sample_dir annuaire, le java_test répertoire, et le abc.py fichier dans un fichier tar appelésample_dir.tar.gz.

Exécutez la commande suivante pour atteindre l'objectif ci-dessus.

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.pysample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputjava_test/java_test/HelloCV.javaabc.pyripon@ripon:~$ lssample_dir java_test abc.py sample_dir.tar.gz

enter image description here

Créer .bzip2 Archiver le Fichier en Compressant un Répertoire ou un Seul Fichier

ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

Notez que nous avons ajouté un drapeau supplémentaire -f au commandement.Voici ce quele drapeau -f en fait, je veux dire

-f, --file ARCHIVE- utiliser un fichier d'archive ou une ARCHIVE de périphérique

enter image description here

Extrait .tar Fichier d'Archive

Nous pouvons extraire ou décompresser le fichier compressé à l'aide de la commande tar. La commande ci-dessous extraira le contenu de sample_dir.tar dans le répertoire des représentants.

ripon@ripon:~$ tar -xvf sample_dir.tarsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

enter image description here

La commande suivante extraira ou décompressera les fichiers dans le répertoire spécifié, c'est-à-dire /home/codebind/dir_name dans ce cas.

ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_namesample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

nous avons ajouté un drapeau supplémentaire -C au commandement.Voici ce que le drapeau -Cen fait, je veux dire

-C, --directory DIR - changer pour répertoire DIR

enter image description here

Extrayez tous les fichiers du dossier actuel, vous pouvez utiliser: décompressez \*.zip

@burtsevyg la barre oblique inverse n’est pas nécessaire là-bas. Cela fera que shell traitera \ * ' comme un symbole d'étoile littéral. Utilisez simplement "décompresser".zip 'pour que shell étende *’ à tous les fichiers se terminant par .zip

Utiliser * ' seul ne fonctionnait pas pour moi. Cela a causé des erreursnom de fichier non apparié". ` \ * 'a fait le travail.

Ubuntu a plusieurs outils de compression/décompression déjà installés. Exécutez ‘apropos zip’ à partir de la console pour la liste complète.

Je vous recommande d’utiliser et d’apprendre “unar” au lieu d’un zip spécifique, sauf si vous avez besoin de fonctionnalités spécifiques. "Les formats de fichiers pris en charge incluent Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt et de nombreux autres formats anciens et obscurs. ".

En relation (pour `*.fichiers tgz’): [Comment décompresser .fichier tgz utilisant le terminal?] (command line - How to unzip .tgz file using the terminal? - Ask Ubuntu)