Skip to main content

Décompressez ou décompressez plusieurs fichiers à la fois sous Linux

Décompressez ou décompressez plusieurs fichiers à la fois sous Linux

Geoffrey Carr

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.

Link
Plus
Send
Send
Pin