Comment utiliser la commande Unzip avec Linux
Pour unzip, les utilisateurs de Linux peuvent appliquer un utilitaire de commande similaire à d’autres formats de compression, tels que tar et gzip. Comprendre comment utiliser la commande unzip permet d’améliorer l’efficacité de diverses tâches, notamment la distribution de logiciels ou l’archivage de données.
Contrairement à ces deux utilitaires, unzip n’est pas installé par défaut. Il dispose également de différentes options pour modifier le comportement de l’extraction et convient à un scénario de développement particulier.
Nous vous expliquons comment installer et utiliser unzip pour extraire des fichiers zip sur un VPS Linux. Nous verrons également en quoi il diffère des autres commandes de décompression et quelles sont ses meilleures pratiques.
Sommaire
Comment installer Unzip
Dans cette section, nous allons passer en revue les étapes pour installer unzip dans les distributions Linux populaires comme Debian et CentOS. Pour exécuter les commandes à distance, connectez-vous à votre serveur virtuel à l’aide d’un client SSH comme PuTTY.
Dérivés de Debian
Pour les systèmes d’exploitation basés sur Debian comme Ubuntu, utilisez le gestionnaire de paquets APT pour installer unzip sous Linux. Avant cela, mettez à jour et mettez à niveau le référentiel avec la commande suivante :
sudo apt update && sudo apt upgrade
Ensuite, installez unzip en utilisant ceci :
sudo apt install unzip
Si vous utilisez un système d’exploitation plus ancien, appliquez la commande suivante à la place :
sudo apt-get install unzip
Dérivés de Red Hat Linux Enterprise (RHEL)
Les commandes pour les systèmes d’exploitation basés sur RHEL comme CentOS, AlmaLinux et Rocky Linux diffèrent en fonction de leur version. Les versions les plus anciennes utilisent le gestionnaire de paquets yum, tandis que les plus récentes utilisent dnf.
Lisez leur documentation ou utilisez des sites web comme DistroWatch pour vérifier le gestionnaire de paquets de votre système d’exploitation. Cela dit, les commandes sont similaires :
sudo yum update && sudo yum upgrade
sudo dnf update && sudo dnf upgrade
De même, les commandes d’installation de l’utilitaire unzip sont les suivantes :
sudo yum install unzip
sudo dnf install unzip
Une fois le processus terminé, vérifiez si unzip a été installé avec succès à l’aide de la commande suivante. Cette commande est la même pour toutes les distributions :
unzip -v
Si l’utilitaire est configuré correctement, votre interface de ligne de commande devrait afficher le numéro de version.
Comment zipper et dézipper des fichiers sous Linux
Une fois l’utilitaire Unzip installé, vous pouvez commencer à extraire des fichiers sur le système Linux. Dans cette section, nous expliquerons comment utiliser l’outil pour plusieurs cas d’utilisation courants.
Important ! Le paramètre de limite de taille dans le système de fichiers peut déclencher une erreur lorsque vous décompressez un fichier sous Linux. Si vous rencontrez ce problème, augmentez le seuil en conséquence.
Comment décompresser un fichier
Pour décompresser un fichier sous Linux, utilisez la commande avec le nom de l’élément que vous souhaitez décompresser. N’oubliez pas que l’archive doit également se trouver dans votre répertoire courant. Voici un exemple :
unzip archive_file.zip
Il extraira le contenu de l’archive ZIP dans le répertoire de travail actuel si vous disposez des droits de lecture et d’écriture.
Vous pouvez également décompresser des fichiers zip dans un répertoire différent en spécifiant le chemin d’accès comme la commande suivante :
unzip path/to/the/archive_file.zip
Comment décompresser plusieurs fichiers
Pour extraire simultanément plusieurs fichiers zip dans le même dossier, utilisez un caractère générique tel que le suivant :
unzip \*.zip
Le symbole de l’astérisque (*) représente n’importe quel caractère. Par exemple, exécutez la commande suivante pour décompresser des fichiers d’archive portant des noms similaires, tels que file-1.zip, file-2.zip, etc :
unzip file-\*.zip
Lors de l’extraction de plusieurs fichiers ZIP à l’aide d’un joker, veillez à utiliser le caractère d’échappement de la barre oblique inverse (\) pour empêcher Terminal de décompresser une archive à partir d’une autre.
Comment extraire des fichiers dans un répertoire spécifique
Au lieu d’utiliser la commande cd, utilisez l’option -d pour décompresser dans un dossier situé à un autre endroit. Par exemple :
unzip archive_file.zip -d /target/folder/destination
La destination peut être absolue ou relative au répertoire de travail actuel. Par exemple, si vous vous trouvez dans le répertoire /target, entrez ce qui suit pour extraire le fichier d’archive vers la même destination :
unzip archive_file.zip -d /directory/destination
Cette commande vous permet également de décompresser un fichier d’un emplacement vers un chemin de répertoire différent sans vous déplacer dans l’un ou l’autre. La commande se présente comme suit :
unzip /origin/path/archive_file.zip -d /target/folder/destination
Comment effectuer une extraction partielle pour des fichiers ou des dossiers spécifiques ?
Un fichier ZIP comprend généralement plusieurs fichiers ou dossiers. Sous Linux, vous pouvez choisir d’extraire un élément spécifique en spécifiant leurs noms après l’archive ZIP comme :
unzip file_archive.zip file1.txt
Pour décompresser plusieurs fichiers, il suffit d’énumérer leurs noms après la commande. Vous pouvez également extraire un dossier spécifique :
unzip file_archive.zip folder_name
Toutefois, si vous souhaitez décompresser un dossier ou un fichier particulier à l’intérieur d’un répertoire, indiquez le chemin d’accès complet. Par exemple, pour extraire /path à l’intérieur du dossier /directory, entrez :
unzip file_archive.zip /directory/path
Vous pouvez également exclure certains fichiers de l’extraction à l’aide de l’option -x. Par exemple, nous conserverons le fichier_1.txt et le fichier_2.txt archivés à l’aide de cette commande :
unzip file_archive.zip -x fichier_1.txt fichier_2.txt
Les administrateurs de serveur excluent généralement des fichiers si l’archive contient beaucoup de contenu. Ils le font également pour mettre à jour partiellement un élément spécifique, ce qui rend le processus plus efficace puisqu’ils n’ont pas à travailler avec beaucoup de données.
Comment décompresser un fichier Zip protégé par un mot de passe ?
Si vous décompressez des fichiers ZIP protégés par un mot de passe sans saisir la clé d’identification, Terminal vous demandera de saisir l’identifiant.
Vous pouvez taper le mot de passe manuellement et appuyer sur Entrée. Cependant, la commande Linux unzip vous permet de saisir directement les informations d’identification à l’aide de l’option -p :
unzip -p password file_archive.zip
Cela rend le processus d’extraction plus efficace. Toutefois, nous vous conseillons d’éviter cette méthode lorsque plusieurs utilisateurs travaillent sur le même système, car elle expose des informations d’identification sensibles dans les journaux de commande.
L’option -p est utile si vous utilisez la commande unzip dans des scripts d’automatisation. Elle vous permet d’extraire un fichier ZIP protégé par un mot de passe en transmettant automatiquement les informations d’identification au lieu de les saisir dans la ligne de commande.
Comment utiliser Unzip dans les scripts d’automatisation
Les administrateurs de serveurs exportent généralement les produits issus de processus tels que la sauvegarde ou l’enregistrement d’événements sous forme d’archives ZIP afin d’économiser de l’espace de stockage. Ils doivent décompresser ces fichiers pour extraire les données à d’autres fins.
Par exemple, l’extraction d’un journal ZIP vous permet de lire l’historique des événements ou de le transmettre à une autre commande pour filtrer les données. Au lieu d’exécuter unzip pour chaque archive, utilisez un script d’automatisation pour exécuter la même commande en une seule fois.
Pour en créer un, utilisez un éditeur de texte comme Nano. Saisissez le nom avec .sh comme extension de fichier, comme dans l’exemple suivant :
sudo nano unzip_log.sh
Saisissez la commande à l’intérieur du fichier. Par exemple, le script suivant décompressera un nouveau fichier journal dans un dossier et supprimera automatiquement les plus anciens lorsqu’ils dépasseront un certain nombre :
#!/bin/bash #Log archive files location log_archive="/path/to/logs/log_archive.zip" #Destination for extracted files log_destination="/path/to/extracted/logs/" #Maximum number of log files to keep max_logs=5 #Use the unzip command to extract files unzip "$log_archive" -d "$log_destination" #Log rotation cd "$log_destination" || exit # List and sort log files log_files=($(ls -1t *.log)) # Check if log rotation is needed if [ ${#log_files[@]} -gt $max_logs ]; then # Delete files and keep the recent ones excess_logs=$(( ${#log_files[@]} - max_logs )) for ((i = 0; i < excess_logs; i++)); do rm "${log_files[$i]}" done fi
Appuyez sur Ctrl + X, Y et Entrée pour enregistrer les modifications. Exécutez ensuite ces commandes pour rendre le script exécutable et l’exécuter :
sudo chmod +x unzip_log.sh
./unzip_log.sh
Actuellement, la commande n’extrait le journal que lorsque vous l’exécutez. Pour l’exécuter régulièrement, définissez un calendrier à l’aide d’un cron job. Par exemple, la commande suivante appliquera le script tous les jours à 2 heures du matin :
0 2 * * * /path/to/unzip_log.sh
Comment combiner Unzip avec d’autres commandes Linux
Linux vous permet de combiner plusieurs utilitaires pour accomplir une tâche spécifique en une seule exécution. Cela rend l’administration du serveur plus efficace puisque vous n’avez pas besoin d’exécuter les commandes individuellement.
Par exemple, combinez la commande unzip avec find pour localiser plusieurs archives et les extraire simultanément. Voici un exemple :
find /path/to/zips -type f -name "*.zip" -exec unzip {} -d /path/to/destination/ \;
Dans l’extrait, la commande find localise les fichiers ZIP dans le répertoire /path/to/zips. Elle transmet ensuite les éléments récupérés à la commande unzip, que les crochets représentent.
Vous pouvez également ajouter la commande grep pour décompresser les fichiers contenant un motif particulier. Prenons l’exemple suivant :
unzip archive.zip $(unzip -l archive.zip | grep "pattern" | awk '{print $4}')
Dans la commande, nous spécifions les éléments à extraire de archive.zip entre les parenthèses. L’option -l liste tout le contenu du fichier ZIP, que grep filtrera en fonction du motif donné.
Ensuite, la pipe (|) transmet les éléments contenant le motif à la commande awk, en extrayant la quatrième colonne contenant le nom du fichier.
Vous pouvez combiner unzip avec d’autres utilitaires spécifiques à vos tâches. Lisez notre article sur les commandes Linux et consultez leur documentation sur le site web de GNU pour en savoir plus sur les combinaisons possibles.
Comparaison de la commande Unzip avec d’autres méthodes
Sous Linux, il existe plusieurs autres formats d’archivage et de compression, comme tar et tar.gz. La commande tar permet de créer une archive sans réduire la taille du fichier, tandis que gzip permet la compression.
Contrairement à la commande zip, ces deux utilitaires ne prennent pas en charge la protection par mot de passe par défaut et peuvent être incompatibles avec des systèmes d’exploitation non UNIX tels que Windows.
Cela dit, ces compressions sont plus courantes dans les systèmes Linux car ils sont préinstallés et la plupart des paquets d’installation se présentent sous la forme d’un fichier tar.gz ou tar. En outre, ces utilitaires offrent plus de modularité et de flexibilité.
Pour décompresser un fichier tar.gz ou tar, utilisez les commandes suivantes :
tar -x archive.tar
gunzip archive.tar.gz
Pour les distributions Linux de bureau, vous pouvez également utiliser une visionneuse et un extracteur de fichiers ZIP avec une interface utilisateur graphique comme PeaZip. Cette interface est plus simple que l’interface en ligne de commande, mais elle peut s’avérer inefficace, car il n’est pas possible de combiner des utilitaires ou d’utiliser l’automatisation des scripts.
Meilleures pratiques pour la gestion des fichiers Zip sous Linux
Dans cette section, nous expliquerons comment gérer les fichiers ZIP de manière sûre et efficace dans un système Linux.
Vérifier l’intégrité des fichiers d’archive
Les cybercriminels injectent souvent un code malveillant ou un logiciel malveillant dans une archive ZIP. Étant donné qu’un fichier ZIP comprend plusieurs éléments, les utilisateurs ne peuvent généralement pas remarquer d’anomalies même après avoir décompressé les fichiers compressés.
Pour éviter le risque de sécurité, listez le contenu d’un fichier ZIP avant de le décompresser à l’aide de l’option -l :
unzip -l downloaded_file.zip
En outre, assurez-vous que la somme de contrôle du fichier correspond à celle de la source de téléchargement afin de garantir son intégrité. Pour ce faire, exécutez :
md5sum downloaded_file.zip
Utilisez également l’option -t pour vérifier la cohérence structurelle de l’archive :
unzip -t downloaded_file.zip
Préserver les fichiers et les autorisations existants
L’extraction peut écraser des fichiers existants portant le même nom dans la destination, ce qui entraîne une perte de données. Utilisez l’option -n pour forcer unzip à ignorer les éléments déjà présents :
unzip -n archive.zip
Vous n’avez pas besoin de confirmer l’extraction du fichier ZIP si le même élément existe déjà dans le dossier cible, car unzip les ignore automatiquement.
Outre l’écrasement, les autorisations des fichiers ou des dossiers peuvent différer de celles du fichier ZIP d’origine après l’extraction.
Bien que vous puissiez modifier les permissions des fichiers manuellement à l’aide de chmod, cette méthode est inefficace si vous extrayez de nombreux fichiers d’une archive ZIP. Pour préserver ces propriétés, utilisez l’option -o :
unzip -o archive.zip
Tirez parti de Kodee
Pour les débutants en VPS, l’utilisation de l’interface de ligne de commande pour décompresser des fichiers sous Linux peut s’avérer difficile en raison de l’absence d’interface graphique. De plus, l’écriture de scripts d’automatisation ou de commandes spécifiques pour des tâches particulières est compliquée.
Avec l’hébergement VPS d’Hostinger, vous pouvez utiliser notre assistant IA, Kodee pour générer facilement des commandes unzip et des scripts bash à l’aide de simples invites. Ils peuvent ensuite copier-coller la sortie pour économiser du temps et des efforts.
Par exemple, entrez “Générer une commande Linux unzip pour extraire les fichiers contenant le motif ‘log‘ du fichier archive.zip dans le répertoire /home/log_extract” ou “Écrire un script bash qui décompresse automatiquement un journal archivé sans écraser les fichiers existants”.
Pour accéder à l’outil, cliquez sur VPS dans le menu supérieur de hPanel et sélectionnez Gérer sur votre plan. Allez dans la barre latérale → Assistant IA Kodee.
Conclusion
Comme tar et gunzip, la commande unzip permet d’extraire un fichier d’archive sous Linux. Cependant, vous devez l’installer manuellement via un gestionnaire de paquets comme APT pour Debian ou DNF pour les dérivés de RHEL tels que CentOS.
Pour décompresser des fichiers, écrivez leur nom après la commande. Par défaut, le contenu est extrait dans le dossier courant, mais vous pouvez spécifier un autre répertoire à l’aide de l’option -d. En outre, vous pouvez décompresser des éléments spécifiques en indiquant leur nom après l’archive.
Vous pouvez utiliser la commande unzip pour une tâche spécifique en l’intégrant dans un script bash ou en la combinant avec d’autres utilitaires. Avant d’extraire, utilisez l’option -n pour vous assurer de ne pas écraser les fichiers existants et vérifiez le contenu d’une archive ZIP à l’aide de l’option -l pour minimiser les risques de sécurité.
Avec Hostinger, vous pouvez simplement demander à notre assistant IA Kodee de générer des commandes unzip ou des scripts pour vos tâches spécifiques. Il vous suffit de saisir les invites et de copier-coller la sortie dans votre terminal.
Autres commandes Linux pour la gestion des fichiers
Comment supprimer des fichiers et des répertoires
Comment changer la propriété d’un fichier avec la commande Chown
Comment renommer un fichier
Comment créer un lien symbolique
Commentaires
June 27 2021
Bonjour, Je vous remercie pour cet excellent travail. Je voudrais savoir si il y a un moyen de récupérer le pourcentage de progression (donc un entier) lorsque on dézippe un .zip. Je ne parle pas de la barre de progression mais seulement le pourcentage : 3% 54% 99% 100%. Merci d'avance
January 09 2023
Bonjour et merci pour votre commentaire ! Comme nous ne disposons pas de suffisamment d'informations pour vous aider, nous vous recommandons vivement de contacter l'équipe chargée du succès de la clientèle à l'adresse fr@hostinger.com afin de bénéficier de la meilleure assistance possible.