Page d'accueil » comment » Shell Geek renommer plusieurs fichiers à la fois

    Shell Geek renommer plusieurs fichiers à la fois

    Supposons que vous avez un répertoire avec des centaines de fichiers avec des noms de fichiers incorrects et que vous souhaitez remplacer tous les noms de fichiers contenant tester avec prod. (Ceci est un exemple artificiel). Nous pouvons facilement faire cela avec la commande «for» dans bash, combinée à un peu de bonté bash. Aujourd'hui, nous allons apprendre à remplacer le texte d'une variable dans une boucle for.

    La commande "pour" fonctionne comme ceci:

    pour var in; do $ var; done

    Vous pouvez remplacer avec tout modèle de correspondance de fichier, tel que * ou * .txt, et vous pouvez remplacer avec n'importe quelle commande linux. La commande sera exécutée en séquence sur chacun des fichiers correspondant au modèle de correspondance de fichier..

    C’est là que la gestion des variables bash le rend encore plus intéressant. Au lieu de faire quelque chose comme «mv $ var», nous pouvons remplacer le texte dans le nom du fichier en utilisant la syntaxe suivante:

    $ var / originaltext / replacetext

    Alors maintenant, si nous lançons cette commande sur notre répertoire:

    pour f in *; do mv $ f $ f / test / prod; done

    Pour chaque fichier correspondant à *, bash exécutera une commande similaire à celle-ci:

    mv test.config prod.config

    J'ai découvert que la connaissance du shell était précieuse lors de l'administration de serveurs ou simplement pour la gestion de votre collection de fichiers, et m'a permis de gagner des heures de travail qui aurait autrement été manuel..

    Et oui, je me rends compte qu’un certain nombre d’outils permettent de renommer plusieurs fichiers.