Как найти все файлы на Mac с именем файла, которое запрещено в Windows?
Я ищу скрипт или программное обеспечение, которое может проверять все файлы на Mac и сообщать о запрещенных / запрещенных символах, например, \ /: *? " < > |, с которым Windows не может работать.
Есть идеи?
1 ответ
Для поиска имен файлов с проблемными символами вы можете использовать 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", чтобы получить руководство и выяснить, как использовать с ним регулярные выражения или шаблоны оболочки).