Comment archiver des fichiers et des répertoires sous Linux [Partie 2]
Dans le guide précédent, nous avons appris comment archiver des fichiers et des répertoires à l'aide de la commande tar sous Linux. Nous allons maintenant faire la même chose, mais en utilisant les programmes Zip et Unzip. L'application zip est à la fois un utilitaire d'archivage et de compression, nous pouvons donc l'utiliser pour archiver, compresser et décompresser des fichiers et des répertoires sous les systèmes d'exploitation Linux et Unix. Cette application zip est compatible avec Windows et d'autres applications zip du système d'exploitation. Cependant, gzip et bzip2 sont les applications de compression prédominantes. Voyons maintenant comment archiver des fichiers et des répertoires sous Linux à l'aide du programme Zip.
Archiver des fichiers et des répertoires sous Linux à l'aide du programme Zip
Le programme Zip est préinstallé avec certaines distributions Linux. Juste au cas où il ne serait pas disponible, vous pouvez l'installer à l'aide du gestionnaire de packages par défaut de la distribution.
Sur Arch Linux et variantes :
sudo pacman -S zip unzipSur RHEL, CentOS, Fedora :
sudo yum install zip unzipSur Debian, Ubuntu, Linux Mint :
sudo apt-get install zip unzip
Sur SUSE/openSUSE :
sudo zypper install zip unzipVoyons maintenant quelques exemples.
Création d'une nouvelle archive
Pour archiver un groupe de fichiers en un seul, faites simplement :
zip file.zip file1 file2 file3Un exemple de résultat serait :
adding: file1 (stored 0%)
adding: file2 (stored 0%)
adding: file3 (stored 0%)Ici, nous créons une archive nommée file.zip à partir de file1, file2 et file3. Vous n'êtes pas obligé d'utiliser l'extension .zip à la fin du nom de fichier. Je l'ai ajouté par souci de clarté.
De même, pour créer une archive d'un répertoire, exécutez :
$ zip directory.zip ostechnix/
adding: ostechnix/ (stored 0%)Ici, j'ai créé une archive nommée directory.zip du dossier ostechnix. Veuillez noter que cela ajoute uniquement le répertoire parent (c'est-à-dire) à l'archive. Pour archiver tous les sous-répertoires de manière récursive, utilisez l'indicateur -r comme ci-dessous.
$ zip -r directory.zip ostechnix/
adding: ostechnix/ (stored 0%)
adding: ostechnix/file.txt (deflated 67%)
adding: ostechnix/audio.mp3 (deflated 6%)
adding: ostechnix/image.jpg (deflated 3%)Contrairement à l'utilitaire tar, le programme zip crée une archive et la compresse si possible. Mais tar est un archiveur, pas un outil de compression.
Créer une archive de plusieurs répertoires et/ou fichiers à la fois
Parfois, vous devrez peut-être créer une archive à partir d'un groupe de fichiers et de dossiers. Pour ce faire, exécutez :
$ zip -r directory.zip ostechnix/ file1 file2 file3
adding: example/ (stored 0%)
adding: example/Stephen.jpg (deflated 3%)
adding: file1 (stored 0%)
adding: file2 (stored 0%)
adding: file3 (stored 0%)La commande ci-dessus crée une archive nommée directory.zip à partir du répertoire ostechnix et du groupe de fichiers à savoir file2, file2 , fichier3.
Maintenant, laissez-moi vous montrer un autre exemple.
$ zip directory.zip file4
adding: file4 (stored 0%)As-tu remarqué? J'ai spécifié l'archive existante, mais le programme zip a mis à jour le contenu du fichier d'archive existant sans le remplacer. Ainsi, si vous avez spécifié une archive existante, elle est mise à jour plutôt que remplacée. Pour faire simple, l'archive existante est conservée, le nouveau fichier4 est ajouté. Il s'agit d'un avantage notable du programme zip par rapport à l'utilitaire tar.
Extraire les archives
Extraire des archives est aussi simple que créer des archives. Pour extraire une archive, faites simplement :
unzip directory.zipUn exemple de résultat serait :
Archive: directory.zip
creating: ostechnix/
inflating: ostechnix/file.txt
inflating: ostechnix/audio.mp3
inflating: ostechnix/image.jpg
extracting: file1
extracting: file2
extracting: file3
extracting: file4Vous pouvez également extraire sélectivement un fichier ou un dossier spécifique du répertoire. Par exemple, la commande suivante extrait le file4 de l'archive directory.zip.
$ unzip directory.zip file4
Archive: directory.zip
extracting: file4Lister le contenu d'une archive sans l'extraire
Pour lister le contenu d'une archive sans réellement l'extraire, utilisez l'indicateur -l.
$ unzip -l directory.zip
Archive: directory.zip
Length Date Time Name
--------- ---------- ----- ----
0 2018-03-29 15:55 ostechnix/
1286 2018-01-11 12:16 ostechnix/file.txt
8073033 2018-03-29 14:03 ostechnix/audio.mp3
15240 2018-03-29 14:45 ostechnix/image.jpg
5 2018-03-29 15:58 file1
5 2018-03-29 15:58 file2
5 2018-03-29 15:58 file3
5 2018-03-29 16:37 file4
--------- -------
8089579 8 filesCela peut être utile lorsque vous souhaitez rechercher et extraire un fichier spécifique au lieu d'extraire l'intégralité de l'archive.
Création d'une archive chiffrée
L'autre caractéristique notable de la commande zip est qu'elle nous permet de créer une archive cryptée, les utilisateurs doivent donc saisir le mot de passe afin d'extraire ou d'afficher le contenu de l'archive.
Pour créer une archive chiffrée, utilisez l'indicateur -e.
$ zip -e -r directory.zip ostechnix/ file1 file2 file3 file4
Enter password:
Verify password:
adding: ostechnix/ (stored 0%)
adding: ostechnix/file.txt (deflated 67%)
adding: ostechnix/audio.mp3 (deflated 6%)
adding: ostechnix/image.jpg (deflated 3%)
adding: file1 (stored 0%)
adding: file2 (stored 0%)
adding: file3 (stored 0%)
adding: file4 (stored 0%Lors de l'extraction ou de la visualisation du contenu de l'archive, vous devez saisir le mot de passe correct.
$ unzip directory.zip
Archive: directory.zip
[directory.zip] ostechnix/file.txt password:Créer une archive en plusieurs parties
Parfois, vous devrez peut-être partager un fichier d'archive sur Internet et ce fichier d'archive lui-même peut être trop volumineux pour être envoyé sur Internet ou sur un réseau local. Dans de tels cas, nous pouvons créer des archives multipares de petite taille et les envoyer via Internet.
Pour archiver un répertoire en plusieurs parties plus petites, par exemple 3 Mo chacune, nous procédons :
zip -r -s 3m archive.zip ostechnix/Cette commande créera des fichiers d'archive d'une taille de 3 Mo comme archive.z01, archive.z02, archive.z03 .... et archive.zip. Vous devez envoyer ces fichiers au destinataire. Lors de l'extraction de ces fichiers d'archive, tout le contenu sera extrait dans un seul dossier nommé ostechnix.
Pour diviser l'archive en Go, utilisez "g" comme ci-dessous :
zip -r -s 3g archive.zip ostechnix/Créer des archives d'autres programmes
Zip peut accepter une entrée standard, il est donc possible de créer une archive d'autres programmes. La commande suivante redirige la sortie de la commande "ls" comme entrée vers la commande zip.
ls -l Documents/ | zip ls-documents.zip -
adding: - (deflated 56%)N'oubliez pas ici que ls-documents.zip est l'archive de la commande "ls". Ainsi, il n'affichera pas le contenu de l'archive en utilisant le commutateur -l.
Au lieu de cela, vous pouvez afficher son contenu à l'aide de la commande :
unzip -p ls-documents.zip | lessIci, -p fait référence à un tuyau.
Compresser les archives avec le taux de compression
Pour archiver un répertoire et son contenu avec le niveau de compression le plus élevé [9] :
zip -r -9 archive.zip ostechnix/Zip prend en charge trois niveaux de compression comme indiqué ci-dessous.
- 1 - Le plus rapide (le pire)
- 9 - Le plus lent (le meilleur ou le plus élevé)
- 6 - Niveau par défaut
Exclure des fichiers ou des dossiers lors de la création d'archives
Nous pouvons exclure les fichiers ou sous-répertoires indésirables lors de la création d'une archive. Pour ce faire, utilisez l'indicateur -x comme ci-dessous :
zip -r directory.zip ostechnix/ -x ostechnix/image.jpgLa commande ci-dessus créera une archive du répertoire ostechnix, mais exclura le fichier image.jpg de l'archive.
Vous pouvez vérifier le contenu sans extraire le fichier d'archive à l'aide de la commande suivante.
unzip -l directory.zipSupprimer des fichiers d'une archive existante
Vous avez peut-être oublié d'exclure certains éléments indésirables lors de la création d'archives. Pas de soucis! Vous pouvez supprimer ces fichiers même après avoir créé l'archive.
Pour supprimer les fichiers indésirables d'une archive existante, utilisez l'indicateur -d comme indiqué ci-dessous.
$ zip -d directory.zip "ostechnix/file.txt"
deleting: ostechnix/file.txtDe même, pour supprimer un groupe de fichiers du même type, par exemple les fichiers .txt, utilisez :
zip -d directory.zip "ostechnix/*.txt"Et c'est tout pour le moment. Nous n'avons fait qu'effleurer la surface des commandes zip/unzip. Vous pouvez faire beaucoup plus en utilisant ces programmes. Pour plus de détails, reportez-vous aux pages de manuel.
man zipman unzip