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.