Comment décompresser ou extraire simultanément plusieurs fichiers sous Linux
Parfois, nous devons décompresser plusieurs fichiers compressés et rarisés à la fois, le tout dans un seul dossier. Dans l'interface utilisateur d'Ubuntu, c'est assez simple : il vous suffit de sélectionner tous les fichiers que vous souhaitez décompresser, de cliquer dessus avec le bouton droit et d'utiliser l'option Extraire pour tous les décompresser. Les choses deviennent vraiment difficiles lorsque l’on veut effectuer la même tâche depuis la ligne de commande. Il peut s'avérer assez fastidieux et illogique d'extraire les fichiers un par un, en tapant les commandes pour les extraire un par un. C'est là que la boucle for de Bash est utile. Il vous permet d'effectuer plusieurs opérations similaires à la fois.
Cet article décrit comment utiliser la boucle for pour extraire plusieurs fichiers du type suivant à l'aide de la ligne de commande Ubuntu :
- 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 Ubuntu 22.04 LTS. Nos exemples de dossiers zip et tar contiennent chacun 4 fichiers compressés de type zip et rar. Nous utilisons l'application terminal pour la ligne de commande Ubuntu. Vous pouvez l'ouvrir via le System Dash ou la combinaison de touches Ctrl+alt+T.
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 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 avec 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 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 avec une seule commande :
for z in *.tar.xz; do tar -xf "$z"; done
Extraire plusieurs fichiers à la fois
Utilisez la commande suivante pour extraire 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
En utilisant la boucle Bash for, vous pouvez facilement accomplir la tâche de décompression de plusieurs fichiers compressés à la fois. Cette petite compétence que vous avez apprise dans cet article est particulièrement utile lorsque nous devons décompresser des centaines de fichiers compressés à la fois. Vous pouvez utiliser la boucle for non seulement pour décompresser des fichiers, mais également pour d'autres tâches similaires qui prennent plus de temps si vous les effectuez une par une.