Si vous avez un répertoire contenant des dizaines de fichiers compressés ou raridés, vous pouvez exécuter une seule commande pour les décompresser en une seule étape, grâce à la puissance du shell bash.
Pour cette tâche, nous utiliserons la structure de commande de boucle de bash. Remplacer avec un nom de variable, et
- soit avec une commande qui sort une liste ou une liste explicite.
for in
do command $; done
Vous pouvez l’exécuter sur une seule ligne avec cette syntaxe:
for in
;do command $;done
Donc, si vous voulez dérouler une liste de fichiers, vous pouvez utiliser cette commande. Vous n’avez pas forcément besoin des guillemets, mais cela aide lorsque les noms de fichiers contiennent des espaces ou quelque chose comme ça.
for f in *.rar;do unrar e “$f”;done
Si vous voulez utiliser 7zip pour extraire une liste de fichiers:
for f in *.001;do 7z e “$f”;done
Ou si vous vouliez décompresser une liste de fichiers:
for f in *.zip;do unzip “$f”;done
Vous pouvez même enchaîner les commandes si vous le souhaitez. Par exemple, si tous vos fichiers zip contiennent des fichiers.txt et que vous souhaitez les décompresser, puis déplacez les fichiers décompressés dans un autre répertoire:
for f in *.zip;do unzip “$f”;done; for f in *.txt;do mv “$f” /myfolder/;done
Le shell bash est tellement incroyablement puissant… cela n’exploite même pas le pouvoir, mais il devrait vous donner une bonne idée de ce qui est possible.