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éestarball
outar
,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
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ériqueCréer
tar.gz
outgz
Archiver le Fichier en Compressant un Répertoire ou un Seul FichierLa 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 gzipripon@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
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, lejava_test
répertoire, et leabc.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
Créer
.bzip2
Archiver le Fichier en Compressant un Répertoire ou un Seul Fichierripon@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ériqueExtrait
.tar
Fichier d'ArchiveNous 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:~$
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-C
en fait, je veux dire
-C, --directory DIR
- changer pour répertoire DIR
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 erreurs
nom 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)