GNU/Linux >> Linux Esercitazione >  >> Linux

Trova file con caratteri di Windows illegali nel nome su Linux

Questa frase di ricerca dovrebbe funzionare per te:

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

Nessuna delle risposte precedenti trova file o directory che terminano con uno spazio (' ') o un punto/punto ('.') che non sono visibili con l'API Win32.

Aggiungendo alla risposta di .e.g. @falsetru, si potrebbe fare

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

Il modello fnmatch ti consente di specificare i caratteri in [] come segue:

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

Linux
  1. Come trovare tutti i file sparsi in Linux

  2. Nascondi i file nascosti di Linux in Windows

  3. Come trovare tutti i file che terminano con .rb con Linux?

  4. Trova tutti i file con nome contenente una stringa

  5. Utilizzo di find e tar con file con caratteri speciali nel nome

Come trovare file in Linux con il comando Trova

Comando Trova Linux con esempi pratici

Come trovare i file usando la riga di comando nel terminale Linux

Come trovare file con il comando fd in Linux

Tutorial comando trova Linux (con esempi)

Usare il comando tr in Linux per giocare con i personaggi