Page d'accueil » comment » Décompressez ou décompressez plusieurs fichiers à la fois sous Linux

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

    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 tous 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 par un nom de variable et par une commande générant une liste ou une liste explicite.

    pour dans
    faire
    commande $;
    terminé

    Vous pouvez l’exécuter sur une seule ligne avec cette syntaxe:

    pour in; do commande $; 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 quand les noms de fichiers ont des espaces ou quelque chose comme ça en eux.

    pour f dans * .rar; do not e e “$ f”; done

    Si vous voulez utiliser 7zip pour extraire une liste de fichiers:

    pour f dans * 0,001; do 7z e “$ f”; fait

    Ou si vous vouliez décompresser une liste de fichiers:

    pour f dans * .zip; décompressez “$ f”; fait

    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:

    pour f dans * .zip, décompressez “$ f”; pour f dans * .txt; do mv “$ f” / myfolder /; done

    Le shell bash est tellement incroyablement puissant… cela ne permet même pas d'exploiter le pouvoir, mais cela devrait vous donner une bonne idée de ce qui est possible.