Recherche de site Web

Comment compresser/décompresser sur la ligne de commande Unix


Introduction

Compresser et décompresser un fichier est une pratique très courante sous Linux. Nous devons compresser plusieurs fichiers en un seul fichier pour les raisons suivantes.

  • Il économise de l'espace disque dans le système.

  • Nous pouvons conserver plusieurs fichiers dans un seul fichier. Cela permet également de copier ce fichier compressé sur un autre système.

Lorsque nous avons un fichier compressé, nous devons également savoir comment le décompresser pour obtenir tous les fichiers requis. Ainsi, les commandes de compression et de décompression sont très importantes sous Linux. Dans cet article, nous allons découvrir différentes commandes pour compresser puis décompresser.

Utilisation de la commande de base zip et unzip

Tout d'abord, les commandes « zip » et « unzip » doivent être présentes sous Linux. Si ces commandes ne sont pas présentes, installez-les à l'aide de la commande ci-dessous.

$ sudo apt install zip
$ sudo apt install unzip

Maintenant, créons 4 fichiers texte.

$ touch 1.txt 2.txt 3.txt 4.txt
$ ls
1.txt  2.txt  3.txt  4.txt

Compressez les 4 fichiers en un seul fichier « tous »

$ zip all *.txt
   adding: 1.txt (stored 0%)
   adding: 2.txt (stored 0%)
   adding: 3.txt (stored 0%)
   adding: 4.txt (stored 0%)

Comme nous pouvons le voir, un fichier all.zip est créé et contient 1.txt , 2.txt , 3.txt , 4.txt .

$ ls
1.txt  2.txt  3.txt  4.txt  all.zip

Supprimons maintenant les 4 fichiers et décompressons all.zip. Nous pouvons voir les 4 fichiers texte.

$ rm *.txt

$ unzip all.zip
Archive:  all.zip
   extracting: 1.txt
   extracting: 2.txt
   extracting: 3.txt
   extracting: 4.txt

$ ls
1.txt  2.txt  3.txt  4.txt  all.zip

Décompressez les fichiers dans un répertoire cible

Dans l'exemple précédent, nous avons vu que tous les fichiers texte sont extraits dans le chemin actuel. Il est toujours recommandé de décompresser les fichiers dans un répertoire différent afin que les fichiers extraits ne soient pas mélangés avec d'autres fichiers dans le chemin actuel.

Nous pouvons utiliser la commande ci-dessous pour extraire « all.zip » dans le répertoire « new-all »

$ unzip -q all.zip -d new-all
$ ls new-all/
1.txt  2.txt  3.txt  4.txt

Exclure des fichiers particuliers lors de la compression

Dans certains scénarios, si nous devons exclure certains fichiers à compresser, nous pouvons utiliser la commande ci-dessous.

$ zip all 1.txt 2.txt 3.txt -x 4.txt
updating: 1.txt (stored 0%)
updating: 2.txt (stored 0%)
updating: 3.txt (stored 0%)

À partir de la sortie, nous pouvons voir que 4.txt n'est pas du tout inclus.zip.

Décompressons « all.zip ».

$ unzip -q all.zip -d 4.txt-not-there

$ ls 4.txt-not-there/
1.txt  2.txt  3.txt

À partir de la sortie ci-dessus, nous pouvons voir que « 4.txt » n'est pas là.

Rechercher tous les fichiers contenus dans le fichier compressé sans le décompresser

Dans certains scénarios, si nous avons besoin de voir quels fichiers se trouvent dans le fichier compressé, nous pouvons utiliser la commande ci-dessous.

$ unzip -l all.zip

Archive:  all.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2016-02-11 22:25   1.txt
        0  2016-02-11 22:25   2.txt
        0  2016-02-11 22:25   3.txt
---------                     -------
        0                     3 files

Mot de passe protégé votre fichier compressé

Dans certains scénarios, si nous devons protéger le fichier compressé à l'aide d'un mot de passe, nous pouvons utiliser la commande ci-dessous.

$ zip -e -r password-protected new-all/

Enter password:
Verify password:
   adding: new-all/ (stored 0%)
   adding: new-all/4.txt (stored 0%)
   adding: new-all/2.txt (stored 0%)
   adding: new-all/3.txt (stored 0%)
   adding: new-all/1.txt (stored 0%)

Comme nous pouvons le voir, le mot de passe est demandé à l'utilisateur et « password-protected.zip » est créé.

$ ls
1.txt  2.txt  3.txt  4.txt  4.txt-not-there  all.zip  new-all  password-protected.zip

Décompressons maintenant « password-protected.zip » avec le mot de passe correct.

$ unzip password-protected.zip

Archive:  password-protected.zip
[password-protected.zip] new-all/4.txt password:
replace new-all/4.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
   extracting: new-all/4.txt
replace new-all/2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
   extracting: new-all/2.txt
replace new-all/3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
   extracting: new-all/3.txt
replace new-all/1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
   extracting: new-all/1.txt

Essayez maintenant la même commande « unzip » avec le mauvais mot de passe.

$ unzip password-protected.zip
Archive:  password-protected.zip
[password-protected.zip] new-all/4.txt password:
password incorrect--reenter:
password incorrect--reenter:
   skipping: new-all/4.txt           incorrect password
[password-protected.zip] new-all/2.txt password:
password incorrect--reenter:
password incorrect--reenter:
   skipping: new-all/2.txt           incorrect password
[password-protected.zip] new-all/3.txt password:
password incorrect--reenter:
password incorrect--reenter:
   skipping: new-all/3.txt           incorrect password
[password-protected.zip] new-all/1.txt password:
password incorrect--reenter:
password incorrect--reenter:
   skipping: new-all/1.txt           incorrect password

On voit que ce n’est pas réussi.

Conclusion

À partir de cet article, nous avons appris à utiliser les commandes « zip » et « unzip ». En utilisant également divers arguments pour créer un fichier compressé protégé par mot de passe, décompressez le fichier compressé dans un répertoire cible et excluez certains fichiers lors de la compression.

Articles connexes: