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 faire cela?
Si la commande unzip
n'est pas déjà installée sur votre système, exécutez:
Sudo apt-get install unzip
Après avoir installé l'utilitaire unzip, si vous souhaitez extraire un dossier de destination particulier, vous pouvez utiliser:
unzip file.Zip -d destination_folder
Vous pouvez simplement utiliser unzip
.
Installez-le:
apt-get install unzip
Et utilisez-le:
unzip file.Zip
Un outil plus utile est 7z
, qui dé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
Vous pouvez utiliser:
unzip file.Zip -d somedir
extraire vers yourpath/somedir
Si vous voulez extraire un chemin absolu, utilisez
Sudo unzip file.Zip -d /somedir
De nombreuses réponses ici mentionnent des outils nécessitant 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. autre. Utilisez simplement l’un des deux scripts présentés ci-dessous pour effectuer le travail. Ils sont assez courts et peuvent même être condensés en une seule ligne si nous le voulions.
#!/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.py master.Zip
ou
python3 pyunzip.py master.Zip
#!/usr/bin/env Perl
use Archive::Extract;
foreach my $filepath (@ARGV){
my $archive = Archive::Extract->new( archive => $filepath );
$archive->extract;
}
Usage:
./perlunzip master.Zip
ou
Perl perlunzip.pl master.Zip
Voir également
Si les répertoires source et de destination sont les mêmes, vous pouvez simplement faire:
unzip filename.Zip
Voici la description détaillée des options que je trouve utiles:
Commande: Décompressez - [option] Zip-path. -D un répertoire facultatif dans lequel extraire les fichiers -L Répertorier les fichiers d’archive. -P mot de passe Utilisation mot de passe pour décrypter les entrées cryptées du fichier zip (le cas échéant). -t Testez les fichiers d’archive avec un contrôle de redondance cyclique. -u Met à jour les fichiers existants. -z commentaire d'archive
Je préfère bsdtar
à unzip
name __/Zip
name__. Pour extraire, ils sont assez similaires:
bsdtar -x -f /one/two/three/four.Zip -C /five
unzip /one/two/three/four.Zip -d /five
Cependant, pour zipper, bsdtar
gagne. Disons que vous avez cette entrée:
/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt
et veux ceci dans le fichier Zip:
alfa/four.txt
bravo/four.txt
C'est facile avec bsdtar
name__:
bsdtar -a -c -f four.Zip -C /one/two/three alfa bravo
Zip n'a pas l'option -d
comme unzip, vous n'avez donc aucun moyen de réaliser ce qui précède à moins que vous ayez cd
en premier.
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 d’une archive Zip.
Exécutez la commande suivante pour installer unzip
Sudo apt-get install unzip
unzip
Syntex
$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile
Maintenant, suivez les étapes ci-dessous:
OPTION 1 - Si le fichier Zip se trouve dans le même répertoire/dossier que votre terminal et que nous souhaitons 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 il existe différentes options.
OPTION 2 - Si le fichier Zip n'est pas présent dans le même répertoire et que nous souhaitons 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 pour présenter le répertoire de travail.
Et si le fichier Zip est protégé par un mot de passe, nous pouvons également utiliser -P
.
tar
est l'acronyme de Tape Archive. La commande tar est utilisée pour manipuler des archives sous Linux/Unix. Les administrateurs système utilisent fréquemment la commande tar pour extraire un groupe de fichiers ou de répertoires en une archive hautement compressée, appelée système tarball
ou tar
, bzip
et gzip
dans Linux/Unix .
tar Syntex
tar [OPTION...] [FILE]...
Ou
tar obligatoire Drapeaux
tar {-r|-t|-c|-x|-u}
tar optionnel Drapeaux
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]
Créer un fichier archive tar en compressant un répertoire ou un fichier unique
La commande de terminal ci-dessous crée un fichier .tar
appelé sample_dir.tar
avec un répertoire /home/codebind/sample_dir
ou sample_dir
dans le répertoire de travail actuel.
ripon@ripon:~$ tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar
Voici ce que signifient ces drapeaux (-cvf)
-c, --create
– créer une nouvelle archive
-x, --extract, --get
– extraire les fichiers d'une archive
-f, --file ARCHIVE
– utilise un fichier archive ou un périphérique ARCHIVE
Créez un fichier d’archivage tar.gz
ou tgz
en compressant un répertoire ou un fichier unique
La commande de terminal ci-dessous crée un fichier .tar.gz
appelé sample_dir.tar.gz
avec un répertoire /home/codebind/sample_dir
ou sample_dir
dans le répertoire de travail actuel.
Notez que nous avons ajouté le drapeau -z supplémentaire à la commande. Voici ce que signifie le drapeau -z.
-z, --gzip, --gunzip --ungzip
– Compresser l'archive avec gzip
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar.gz
La commande ci-dessous va créer un fichier .tgz. Tar.gz et tgz sont similaires.
ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tgz
Compression simultanée de plusieurs répertoires ou fichiers
Disons, par exemple, nous voulons compresser le répertoire sample_dir
, le répertoire Java_test
et le fichier abc.py
dans un fichier tar nommé 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.py
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
Java_test/
Java_test/HelloCV.Java
abc.py
ripon@ripon:~$ ls
sample_dir Java_test abc.py sample_dir.tar.gz
Créez un fichier archive .bzip2
en compressant un répertoire ou un fichier unique
ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$
Notez que nous avons ajouté un indicateur supplémentaire -f
à la commande. Voici ce que signifie réellement l'indicateur -f
-f, --file ARCHIVE
– utilise un fichier archive ou un périphérique ARCHIVE
Extrait .tar
fichier 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 actuel.
ripon@ripon:~$ tar -xvf sample_dir.tar
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$
La commande suivante extraira ou annulera les fichiers du répertoire spécifié, à savoir /home/codebind/dir_name
dans ce cas.
ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_name
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$
nous avons ajouté un indicateur supplémentaire -C
à la commande. Voici ce que signifie réellement l'indicateur -C
-C, --directory DIR
- changement dans le répertoire DIR