Shell Geek: Renommer des fichiers multiples à la fois

Disons que vous avez un répertoire avec des centaines de fichiers avec les noms de fichier erroné, et que vous souhaitez remplacer chaque nom de fichier contenant test with prod. (Ceci est un exemple artificiel). Nous pouvons facilement le faire avec les "pour" commande bash, combiné avec un peu de bonté bash. Aujourd'hui, nous allons apprendre à remplacer un texte dans une variable dans une boucle for.

Les "pour" commande fonctionne comme ceci:

for var in ;do $var;done

Vous pouvez remplacer avec n'importe quel motif de correspondance de fichiers, tels que * ou *. txt, et vous pouvez remplacer avec n'importe quelle commande sous Linux. La commande sera exécutée dans l'ordre sur chacun des fichiers correspondants par le motif de correspondance de fichier.

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

$ {Var / Originaltext / replaceText}

Alors maintenant, si nous exécuter cette commande sur notre annuaire:

for f in *; ne mv $ f $ {f / test / prod}; fait

Pour chaque fichier correspondant par *, bash va exécuter une commande similaire à ceci:

mv test.config prod.config

J'ai trouvé que la connaissance de la coquille est très précieuse lors de l'administration des serveurs ou tout simplement pour gérer votre collection de fichiers, et m'a sauvé heures de ce qui aurait autrement été le travail manuel.

Et oui, je réalise qu'il ya un certain nombre d'outils qui peuvent accomplir le renommage de fichiers multiples.

Commentaires

Posts les plus consultés de ce blog

Créer Arrêter / Redémarrer / Verrouiller les icônes dans Windows 7 ou Vista

Qu'est ce qu'un lien Magnet Et quelle est la différence des torrents?

Gardez vos mots de passe sous Linux, avec KeePassX