Exemple d'utilisation de find et rename pour renommer en masse des fichiers et des dossiers.
On installe les paquets rename et find :
D'abord mettre à jour ses paquets, voir les outils apt pour plus d'explications
apt update && apt full-upgrade
Et installer les 2 paquets :
apt install rename find
(Ce titre n'est pas un vain mot, ici…)
Suite à un repositionnement de plusieurs listes de films il me faut renommer les titres en supprimant tous les aspects purement littéraux qui falsifieraient le résultat des commandes que j'utilise pour la gestion informatique de l'ensemble de la cinémathèque.
/mnt/bla/
, et l'on veut renommer tous les dossiers, sous-dossiers, et leurs fichiers avec différentes contraintes.
Pour remplacer les espaces et les apostrophes par, respectivement, des _
et des -
dans les noms de fichiers/dossiers.
find /mnt/bla/ -depth -execdir rename "y/ '/_-/" "{}" \;
Pour supprimer les parenthèses dans les noms de fichiers/dossiers.
find /mnt/bla/ -depth -execdir rename "s/[\)\(]//g" "{}" \;
Pour mettre la première lettre en majuscule dans les noms de fichiers/dossiers.
find /mnt/bla/ -depth -execdir rename "s/^\.\/(.)/.\/\U\$1/" "{}" \;
Pour enchaîner toutes les substitutions en une seule commande :
find /mnt/bla/ -depth -execdir rename "y/ '/_-/;s/[\)\(]//g;s/^\.\/(.)/.\/\U\$1/" "{}" \;