Comment renommer des fichiers et des répertoires en masse ?
Imaginez que vous soyez en train de lire un bouquin qui vous explique comment gérer au mieux votre temps et vous organiser efficacement et qu’en parallèle, bon bordélique que vous êtes, vous ayez tout un tas de fichiers et de dossiers en vrac ? J’imagine que vous aimeriez les renommer pour classer et ranger tout ça proprement.
Comment faire ? À la main ? Fichier par fichier ? La vie est trop courte pour ça mes amis ! Heureusement, il existe un outil nommé F2 qui est multiplateforme (Windows, macOS, Linux) et permet en ligne de commande de renommer des fichiers et des répertoires par lots, rapidement et en toute sécurité.
Les options de renommage de F2 vous permettront de remplacer des chaînes de caractères simples ou en suivant des schémas à l’aide d’expressions régulières, mais également d’insérer des préfixes, des suffixes où n’importe où dans le nom de fichier. Vous pouvez également supprimer des caractères, modifier la casse ou incrémenter le nom des fichiers avec des nombres. F2 permet également de permuter des parties du nom de fichier.
Évidemment comme je vous le disais tout ceci se fait de manière sécurisée en s’assurant qu’une opération de renommage n’entraîne pas de conflits ou d’erreurs. Plusieurs validations sont réalisées avant d’exécuter une opération de renommage et dès qu’un conflit est détecté, F2 vous propose une solution pour résoudre ce petit problème.
F2 peut fonctionner aussi avec des variables récupérées dans les attributs du fichier. Je pense notamment aux données Exif pour les images et aux balises ID3 pour la musique.
Et si vous vous plantez dans vos manipulations, et bien pas de panique puisque F2 permet également de revenir en arrière en cas d’erreur. Perfecto !
F2 est développé en Go et s’installe de la façon suivante :
go install github.com/ayoisaiah/f2/cmd/f2@latest
Voici quelques exemples d’utilisation.
Remplacer toutes les instances de Screenshot dans le répertoire courant par Image :
$ f2 -f 'Screenshot' -r 'Image' +--------------------+---------------+--------+ | INPUT | OUTPUT | STATUS | +--------------------+---------------+--------+ | Screenshot (1).png | Image (1).png | ok | | Screenshot (2).png | Image (2).png | ok | | Screenshot (3).png | Image (3).png | ok | +--------------------+---------------+--------+
Concernant l’usage des expressions régulières, par défaut, les arguments de –find (-f) sont traités comme des expressions régulières.
Utilisez alors le paramètre -s ou –string-mode pour désactiver les expressions régulières. Ceci est utile lors du remplacement de noms de fichiers avec des caractères qui ont une signification spéciale dans l’expression rationnelle tels que - . { } ( [ ] ). Ici on remplace 2021 par 2022 dans les noms des fichiers
f2 -f '(2021)' -r '[2022]'
Pour supprimer le texte en n’utilisant pas le paramètre -r ou –replace. Voici un exemple qui supprime tous les espaces d’un nom de fichier :
f2 -f ' '
Et si vous voulez renommer les fichiers en les incrémentant :
f2 -f '.*.' -r '%03d.'
La doc est vraiment bien faite et je vous invite à la consulter ici.