Как найти все файлы на Mac с именем файла, которое запрещено в Windows?

1

Я ищу сценарий или программное обеспечение, которое может проверить все файлы на Mac и сообщить о запрещенных / запрещенных символах, например, \ /: *? "& lt; & gt; |, с которой Windows не может работать.

Есть идеи?

Feri
источник
Вы говорите об ограниченных символах в имени файла или содержимом файла?
Pascal
\ /: *? "& lt; & gt; | в именах файлов. Есть ли запрещенные символы для содержимого файла? !!! На самом деле я не уверен!
Feri

Ответы:

2

Для поиска имен файлов с проблемными символами вы можете использовать find:

$ find / -regex ".*[<>/:*?|].*" -print

Поместите все символы, которые вы хотите найти, в квадратные скобки. Обратите внимание, что некоторые символы должны быть экранированы, потому что они имеют особое значение (например, 0-9 найдут все цифры, а не 0, - и 9). По сути, в двойных кавычках вы указываете регулярное выражение, имена файлов которого должны соответствовать, чтобы быть напечатанными.

Вы можете создать файл, содержащий список всех файлов, например:

$ find / -regex ".*[<>/:*?|].*" -print > problematic-files.txt

Если вы используете -name вместо -regex, затем вы можете указать базовый шаблон оболочки (где * обозначает любое количество символов,? - один и [...] выбор символов). Это менее гибко, но, вероятно, достаточно для ваших целей:

$ find / -name "*[<>/:*?|]*" -print > problematic-files.txt

(Я не уверен, что Mac OS имеет ту же функциональность поиска, что и GNU find, которую я использую. Используйте «man find», чтобы получить руководство и выяснить, как использовать с ним регулярные выражения или шаблоны оболочки).

Pascal
источник
Обратите внимание, что / будет соответствовать пути, как /some/path/goodname.txt... В противном случае, это хорошо работает на Mac.
Arjan
Хм, это правда. Так что оставьте / в регулярном выражении. Если вам нужно отфильтровать косые черты в именах файлов, я не вижу решения, которое не включает в себя запуск списка всех файлов на компьютере через цикл сценариев и использование sed для каждого; надеюсь, у вас не так много файлов с косой чертой в них. В моей системе у меня проблемы с созданием файла с косой чертой в имени ...
Pascal