La compression de fichiers est un moyen de créer des archives qui nous aident à gagner du temps, à créer de l'espace et à télécharger et transférer plus rapidement des logiciels et des données. Vous pouvez utiliser un fichier compressé pour distribuer des fichiers associés sur Internet, tous compressés en un seul fichier, sans aucune perte de données. Si vous avez besoin d'espace sur votre système ou sur un périphérique de stockage externe, vous pouvez compresser des fichiers dans des fichiers archivés plus petits. Parfois, nous devons extraire plusieurs fichiers compressés et rar à la fois, tous situés dans un seul dossier. Le faire via l'interface utilisateur Linux est assez simple; tout ce que vous avez à faire est de sélectionner tous les fichiers que vous souhaitez extraire, de cliquer avec le bouton droit de la souris et d'utiliser l'option d'extraction pour les extraire complètement. La vraie affaire, c'est quand nous voulons faire la même tâche via la ligne de commande. Il peut s'avérer assez long, et franchement illogique, d'extraire un par un en saisissant une à une les commandes d'extraction de fichiers. Voici la boucle for de bash à sauver. Vous pouvez l'utiliser pour effectuer plusieurs opérations similaires à la fois.
Cet article décrit comment vous pouvez utiliser la boucle for dans le shell bash pour extraire plusieurs fichiers des types suivants via la ligne de commande Debian :
- Fichiers compressés
- Fichiers tar.xz
- Fichiers RAR
- Fichiers 7z
Nous avons exécuté les commandes et procédures mentionnées dans cet article sur un système Debian 10 Buster. Nous utilisons l'application Terminal comme ligne de commande Debian. Vous pouvez l'ouvrir via la recherche du lanceur d'applications comme suit :
Le lanceur d'applications est accessible à l'aide de la touche Windows/Super de votre clavier.
Décompressez plusieurs fichiers à la fois
Supposons qu'un dossier, un dossier "zip_files" dans notre cas, contienne plusieurs fichiers zippés et que nous souhaitions les extraire simultanément.
Voici comment vous pouvez utiliser la boucle for pour simplifier la tâche :
$ for z in *.zip do unzip $z; done
Voici comment vous pouvez réaliser la même tâche en une seule commande :
$ for z in *.zip; do unzip "$z"; done
Extraire plusieurs fichiers tar.xz à la fois
Supposons qu'un dossier contienne plusieurs fichiers tar.xz et que nous souhaitions les extraire simultanément.
Voici comment vous pouvez utiliser la boucle for pour simplifier la tâche :
$ for z in *.tar.xz do tar -xf $z; done
Voici comment vous pouvez réaliser la même tâche en une seule commande :
$ for z in *.tar.xz; do tar -xf "$z"; done
Désarchiver plusieurs fichiers à la fois
Utilisez la commande suivante pour décompresser plusieurs fichiers rar à la fois.
$ for z in *.rar do unrar e $z; done
Ou,
$ for f in *.rar; do unrar e “$f”; done
Extraire plusieurs fichiers 7z à la fois
Utilisez la commande suivante pour extraire plusieurs fichiers 7z à la fois.
$ for z in *.7z do 7z e $z; done
Ou,
$ for z in *.7z; do 7z e "$z"; done
Grâce à l'utilisation de la boucle bash for, vous pouvez accomplir la tâche fastidieuse d'extraire plusieurs fichiers compressés, en une seule fois. Cette petite compétence que vous avez apprise dans cet article est particulièrement utile lorsque nous devons extraire simultanément des centaines de fichiers compressés. Non seulement pour l'extraction de fichiers, mais vous pouvez également utiliser la puissance de la boucle "for" bash pour effectuer diverses autres tâches similaires qui peuvent prendre plus de temps lorsque vous les exécutez une par une.