Bonjour,
je viens de découvrir un petit utilitaire magique, en ligne de commande, pour tous ceux qui sont amateurs de scripting et de traitements automatisés sur un grand nombre de fichiers.
À titre d'exemple, j'ai organisé ma collection de musiques en les plaçant toutes dans le même répertoire, nommés ainsi :
Artiste__Année__Album__Piste__Titre.Extension
Ceci permet de faire facilement des recherches ou des traitements sans avoir à gérer la récursion dans les répertoires.
Sauf que toute personne ayant suffisamment scripté s'est vue un jour confrontée au problème des caractères spéciaux (é, à, ï, ...) et/ou significatifs (espace, astérisque, tiret, slash, ...) dans les noms de fichiers.
C'est là que detox intervient.
Disponible dans les dépôts Ubuntu au moins depuis Hardy (je ne suis pas allé explorer plus antérieurement), cet utilitaire permet, en une ligne de commande, de remplacer facilement, intelligemment, je dirais même magiquement, ces caractères sur un nombre quelconque de fichiers (j'en ai traité plus de 1000 en une commande, ce fut instantané).
Avec les bonnes options, on peut :
- renommer des fichiers en UTF-8 ou en ISO-8858-1, en remplaçant les caractères accentués par leur équivalent non accentué, les espaces et de nombreux caractères par des underscores, toute séquence de tirets/underscores par un seul underscore, etc.
- simuler le résultat sans renommer effectivement les fichiers (pratique pour s'assurer du bon fonctionnement
avant de faire une catastrophe) ;
- transformer tous les caractères en minuscules ;
- etc.
Pour l'installer :
$ sudo apt-get install detox
ou cliquer [url=apt://detox]ici[/url].
Pour l'utiliser :
$ man detox
$ man detoxrc
$ man detox.tbl
Les fichiers de configuration :
/usr/share/detox/*.tbl (tables de traduction) ;
/etc/detoxrc (configuration générale) ;
~/.detoxrc (configuration propre à l'utilisateur).
Exemples d'utilisation :
Pour simuler le renommage de tous les fichiers dans le répertoire courant :
$ detox -n -s utf_8 *
Pour renommer tous les fichiers contenant au moins une espace dans son répertoire video :
$ detox -s utf_8 ~/video/"* *"
Pour les fonctionnalités plus précises, il sera nécessaire d'éditer le fichier detoxrc (voir le manuel). Attention notamment, par défaut il remplace toute séquence de tirets/underscores par un unique underscore (vous imaginez bien que je n'y avais pas fait attention à la simulation, en renommant mes plus de 1000 fichiers de musique contenant des doubles underscores comme séparateurs :lol:).