GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

"Réparer" les noms de fichiers gênants.

Windows a un certain nombre de caractères réservés qui ne sont pas autorisés dans les noms de fichiers/dossiers :

◦Les caractères réservés suivants :
◾<(inférieur à)◾> (supérieur à)
◾ :(deux-points)
◾" (guillemet double)
◾/ (barre oblique )
◾\ (barre oblique inverse)
◾| (barre verticale ou tuyau)
◾ ? (point d'interrogation)
◾* (astérisque)

Je déconseille également l'utilisation d'accolades {}

L'extrait de code suivant peut être utilisé pour "nettoyer" un dossier plein de fichiers et se débarrasser des principaux obstacles. Dans cet extrait, je remplace certains caractères comme espace et :par _ et supprime d'autres caractères. Je remplace également un "double espace" résultant __ par un simple _

N'hésitez pas à développer et à adapter si nécessaire.

L'insertion de ls dans une lecture while évite la nécessité d'essayer de tout échapper correctement lors de l'envoi à mv

###
# Fix badly names files
# Windows doesn't really like "::" in filenames, we'll also get rid of other problematic characters.
###

ls | while read -r FILE ; do
  mv -u "${FILE}" $(echo "${FILE}" | tr ' ' '_' | tr -d '[{}(),\!]' | tr ':' '_' | sed 's/__/_/g') 2>/dev/null
done

Webmin
  1. Correction de Spamassassin dans Debian Jessie(8)

  2. L'invite du terminal écrase la ligne actuelle ?

  3. Sed peut-il remplacer les caractères de nouvelle ligne ?

  4. Compter les caractères de chaque ligne avec Wc ?

  5. Une commande pour imprimer uniquement les 3 derniers caractères d'une chaîne ?

Commande Tr sous Linux avec des exemples

Comment supprimer les caractères (^M) d'un fichier sous Linux

Correction du blocage d'Ubuntu au démarrage

Caractères de citation de page d'homme ?

Commande Linux tr avec exemples

Comment supprimer les caractères invalides des noms de fichiers ?