1927 votes

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

Vient de télécharger un fichier .zip depuis internet. Je veux utiliser le terminal pour décompresser le fichier. Quelle est la méthode correcte pour le faire ?

4 votes

Extraire tous les fichiers du dossier actuel, vous pouvez utiliser: unzip \*.zip

3 votes

@burtsevyg le backslash n'est pas nécessaire là-bas. Cela fera en sorte que le shell traite \* comme un symbole d'étoile littérale. Il suffit d'utiliser dézipper *.zip pour que le shell développe * à tous les fichiers se terminant par .zip

2 votes

Utiliser * seul n'a pas fonctionné pour moi. Cela a provoqué des erreurs de nom de fichier non trouvé. \* a fait l'affaire.

2592voto

Kelley Points 29684

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

sudo apt-get install unzip

Après avoir installé l'utilitaire unzip, 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 destination sont les mêmes, vous pouvez simplement faire :

unzip file.zip

114 votes

Si vous êtes déjà dans le répertoire où vous voulez que le fichier soit décompressé, omettez le 2e et le 3e argument, c'est-à-dire unzip /chemin/vers/fichier.zip

2 votes

Je viens d'utiliser cette commande. C'est un exemple. Étape 1 (Je me suis déplacé dans le répertoire où se trouve le fichier zip) : cd /home/paf/Copy/Programming/Javascript/Json Étape 2 (J'extrait le fichier zip dans le répertoire que je viens de mentionner) : unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json

0 votes

Y a-t-il aussi une possibilité de "... et visiter ce dossier dans le terminal" de quelque sorte?

270voto

Panther Points 96601

Vous pouvez simplement utiliser unzip.

Installez-le :

apt-get install unzip

Et utilisez-le :

cd /chemin/vers/fichier
unzip fichier.zip

152voto

Chris Points 1521

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 liste le contenu du zip:

7z l zipfile.zip

Cette commande extrait le contenu du zip:

7z x zipfile.zip

13 votes

7z e ne conserve pas la structure des répertoires - 7z x le fait...

2 votes

13.10 dit que 7z n'existe pas. Je pense qu'il faut sudo apt-get install 7zip

8 votes

Je pense que la commande d'installation devrait être sudo apt-get install p7zip ou sudo apt-get install p7zip-full Vous avez besoin de la version complète pour obtenir la commande 7z. La version complète est également la seule qui gère les fichiers zip et d'autres types de formats parmi les deux.

62voto

isiaatz Points 429

Vous pouvez utiliser :

dézipper fichier.zip -d somedir

pour extraire dans votrechemin/somedir

Si vous voulez extraire vers un chemin absolu, utilisez

sudo dézipper fichier.zip -d /somedir

59voto

Sergiy Kolodyazhnyy Points 97292

Utilisation d'outils de scriptage : Perl et Python

De nombreuses réponses mentionnent des outils qui nécessitent une installation, mais personne n'a mentionné que deux des langages de script Ubuntu, Perl et Python, viennent déjà 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 autre chose. 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 python3
import sys
from zipfile import PyZipFile
for 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 perl
use 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

7 votes

Merci, exactement ce dont j'ai besoin. Je n'ai pas accès en tant que root et je ne veux pas installer unzip manuellement à partir de la source. Cela peut également être utilisé avec une seule ligne bash qui fonctionnera la plupart du temps (en supposant qu'il n'y a pas de ''' dans le nom du fichier) : unzip(){ python -c "from zipfile import PyZipFile; PyZipFile( '''$1''' ).extractall()"; }

1 votes

Utilisez simplement la classe ZipFile, et non PyZipFile, ce dernier ayant un support spécifique pour la compression des bibliothèques Python

0 votes

Génial. assez rapide là où vous n'avez pas besoin de décompresser puis d'obtenir la permission root pour installer d'autres binaires

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X