GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver des fichiers avec des caractères Windows illégaux dans le nom sous Linux

Cette formule de recherche devrait fonctionner pour vous :

find . -name "*[<>:\\|?*]*" -exec bash -c 'x="{}"; y="$(sed "s/[<>:\\|?*]\+/-/g" <<< "$x")" && mv "$x" "$y" ' \;

Aucune des réponses ci-dessus ne trouve les fichiers ou répertoires qui se terminent par un espace (' ') ou un point/point ('.') qui ne sont pas non plus visibles avec l'API Win32.

En ajoutant à .e.g la réponse de @falsetru, on pourrait faire

find . -name '*[<>:/\\|?*]*' -o -name '*[ \.]'

le modèle fnmatch vous permet de spécifier que les caractères dans [] comme suit :

find . -name '*[<>:/\\|?*]*'

Linux
  1. Trouvez les fichiers et répertoires les plus volumineux sous Linux

  2. Utilisation de la commande Linux find – Utilisation avec des exemples

  3. Comment trouver des fichiers en double sous Linux ? L'aide est ici avec la commande fdupes !

  4. Linux - Obtenir des fichiers pour la date actuelle sous Linux ?

  5. Comment rechercher des fichiers avec la commande fd sous Linux

Comment rechercher des fichiers sous Linux avec la commande Find

Commande de recherche Linux avec des exemples pratiques

Comment trouver des fichiers en utilisant la ligne de commande dans le terminal Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Tutoriel sur la commande de recherche Linux (avec exemples)

Utilisation de la commande tr sous Linux pour jouer avec des personnages