Normaliser les noms de fichiers

Pourquoi

Piwigo est assez restrictif sur les noms autorisés pour les fichiers de photos, et les différents appareils photos sont souvent "relax". Si on a renommé des fichiers dans Windows (certaines versions), on peut se retrouver avec des parenthèses dans le nom... Certains téléphones mettent des espaces dans le nom...

J'ai donc un script (filenames-normalize.sh) pour normaliser les noms de fichiers, c'est à dire supprimer tous les caractères qui ne passent pas sur le web (tout ce qui n'est pas une lettre ascii ou un chiffre).

le script

Ce script remplace tous les caractères qui ne sont pas listés par "-". Ca donne un résultat curieux si quelqu'un a mis des lettres accentuées dans les titres, mais au moins c'est accepté partout! remplacer â par a, par exemple, est faisable mais bien plus compliqué. L'option "alnum" de sed ne supprime pas les caractères accentués.

for I ; do
mv -v -- "${I}" "$(echo ${I} | sed 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.]/-/g')"

done

Detox

Il y a beaucoup mieux: "Detox". detox est un utilitaire disponible dans l'OBS qui normalise les noms de fichier proprement.

Utilisation de base:

 detox -s utf_8 *

on le trouve là:

https://software.opensuse.org/package/detox

mmv

Pour supprimer une partie du nom du fichier, mmv...

 mmv "*.part" "#1"

supprime le "part" laissé par le ftp des samsung