Question Comment décompresser un fichier zip depuis le terminal?


Il suffit de télécharger un fichier .zip sur Internet. Je veux utiliser le terminal pour décompresser le fichier. Quelle est la bonne façon de faire cela?


1145
2017-12-11 04:37


origine


Extrayez tous les fichiers du dossier actuel, vous pouvez utiliser: unzip \ *. Zip - burtsevyg
@burtsevyg la barre oblique inverse n'est pas nécessaire là. Il fera un traitement de coquille \* comme symbole étoile littéral. Juste utiliser unzip *.zipfaire étendre la coquille * à tous les fichiers se terminant par .zip - Sergiy Kolodyazhnyy


Réponses:


Si la 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

1576
2017-12-11 04:44



Si vous êtes déjà dans le répertoire que vous voulez décompresser, omettez les 2ème et 3ème arguments, c’est-à-dire unzip /path/to/file.zip - Severo Raz
Je viens d'utiliser cette commande. Ceci est un exemple. Étape 1 (j'ai changé pour le répertoire où le fichier zip est stocké): cd /home/paf/Copy/Programming/Javascript/Json    Etape 2 (J'extrais le fichier zip dans le répertoire que je viens de mentionner): unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json - pablofiumara
unzip peut être un programme par défaut. En d'autres termes, vous n'avez peut-être pas besoin de l'installer. - noobninja
@Aevi Vérifiez les pages de manuel [-d exdir] An optional directory to which to extract files. - Zety
Assurez-vous que vous extrayez dans un répertoire, contrairement aux archives tar, vous pouvez trouver que beaucoup de personnes incluent des dizaines de fichiers dans leur répertoire racine de leurs fichiers zip, cela peut créer un véritable désordre !!! - Steve


Vous pouvez simplement utiliser unzip.

Installez-le: apt-get install unzip

Et l'utiliser: unzip file.zip


192
2017-12-11 04:41





Un outil plus utile est 7z, qui zippe 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 fichier zip:

7z l zipfile.zip

Cette commande extrait le contenu du zip:

7z x zipfile.zip

96
2017-09-14 08:01



7z e ne conserve pas la structure du répertoire - 7z x Est-ce que... - assylias
13.10 indique que 7z n'existe pas. Je pense qu'il faut sudo apt-get install 7zip - nitishch
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 le 7z commander. Le full est également le seul à gérer les formats zip et autres sur les deux. - Automatico
pourriez-vous clarifier "un outil plus utile"? Est-ce que vous comparez à décompresser? Pourriez-vous fournir des exemples de fonctionnalités qui rendent 7z plus utile, et peut-être dans quels contextes 7z est-il préférable? - David LeBauer
Pour certains, le décompression est plus utile: facile à utiliser et son nom à retenir. - Shy Robbiani


Vous pouvez utiliser:

unzip file.zip -d somedir

extraire à yourpath/somedir

Si vous voulez extraire vers un chemin absolu, utilisez

sudo unzip file.zip -d /somedir

38
2018-05-28 16:45





Utiliser des outils de script: Perl et Python

De nombreuses réponses mentionnent des outils nécessitant une installation, mais personne n’a mentionné que deux des langages de script d’Ubuntu, Perl et Python, contiennent déjà tous les modules nécessaires pour décompresser une archive zip, ce qui signifie que vous n’avez rien à installer. 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 à une 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()

Usage:

./pyunzip master.zip

Perl

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

Usage:

./perlunzip master.zip

23
2018-06-02 18:43





Si votre destination est identique au fichier zip source, vous pouvez simplement faire:

unzip filename.zip

20
2018-03-20 06:28



Sur Ubuntu 17.04, -d nécessite pour une raison inconnue. - 林果皞


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

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

Cependant pour compresser, bsdtar gagne. Disons que vous avez cette entrée:

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

et que vous le voulez dans le fichier zip:

alfa/four.txt
bravo/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 unzip, donc vous n'avez aucun moyen de réaliser ce qui précède à moins que vous cd premier.


14
2017-12-02 01:50





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

Command: unzip -[option] zip-path.  
               -l List archive files.  
               -t Test archive files with cyclic redundancy check.  
               -u update the existing files.  
               -z archive comment.  

14
2017-10-14 10:58





Voici la commande au cas où vous souhaitez extraire dans le répertoire actuel

unzip <source_file_path>.zip 

si vous souhaitez extraire dans un dossier de destination particulier, vous pouvez utiliser

unzip <sorce_file_path>.zip -d <destination_path>

s'il y a un mot de passe, vous pouvez également utiliser -P

unzip -P <password> <sorce_file_path>.zip 

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

sudo apt-get install unzip

2
2017-11-01 17:54



Cela répète ce que les réponses existantes ont déjà dit. - Sergiy Kolodyazhnyy


Tout d'abord vous devez installer unzip si ce n'est pas installé.

sudo apt-get install unzip

1 - Si le fichier se trouve dans le même répertoire que le terminal et que vous voulez l'extraire au même endroit.

sudo unzip file.zip

si le fichier est protégé par mot de passe:

sudo unzip -P file.zip

et assurez-vous que c'est -P ne pas -p c'est une option différente

2 - Si le fichier n'est pas dans le même répertoire et que vous souhaitez l'extraire dans un répertoire différent, le terminal est. utilisation :

sudo unzip path/filename.zip -d anotherOrSamePath

si vous n'avez pas utilisé -d le fichier sera extrait à l'emplacement où se trouve le terminal.

Et s'il y a un mot de passe, vous pouvez également utiliser -P .


0
2017-08-28 06:55



S'il vous plaît ne pas poster des captures d'écran de texte. Copiez le texte et appliquez le formatage du code. - muru
notez que vous n'avez pas besoin d'utiliser sudo utilisez-le seulement si nécessaire je l'ai utilisé car le fichier est créé par sudo donc je ne pourrais pas le modifier sans sudo - Mahmoud S. Marwad
@muru c'est à partir du terminal, donc si je le copiais, cela n'aurait aucun sens je pense. - Mahmoud S. Marwad
pourquoi serait-il sans signification? Quelle signification particulière tire-t-elle de l'image? - muru
montrant que c'est le terminal et ce que la sortie est. - Mahmoud S. Marwad