Para encontrar nomes de arquivos com caracteres problemáticos, você pode usar find:
$ find / -regex ".*[<>/:*?|].*" -print
Coloque todos os caracteres que você deseja procurar nos colchetes. Observe que alguns caracteres devem ter escape, pois têm um significado especial (por exemplo, 0-9 encontrará todos os dígitos, não 0, e 9). Basicamente, o que você especifica nas aspas duplas é uma expressão regular cujos nomes de arquivo devem caber para serem impressos.
Você pode criar um arquivo contendo a lista de todos os arquivos da seguinte forma:
$ find / -regex ".*[<>/:*?|].*" -print > problematic-files.txt
Se você usa -name
em vez de -regex
, então você pode especificar um padrão básico de shell (onde * representa qualquer número de caracteres,? para um e [...] de uma escolha de caracteres). Isso é menos flexível, mas provavelmente é suficiente para seus objetivos:
$ find / -name "*[<>/:*?|]*" -print > problematic-files.txt
(Não tenho certeza se o Mac OS tem a mesma funcionalidade de localização que o GNU encontra, o que estou usando. Use "man find" para obter o manual e descobrir como usar expressões regulares ou padrões de shell com ele ).