如何在 Mac 上查找所有文件名在 Windows 上非法的文件?

如何在 Mac 上查找所有文件名在 Windows 上非法的文件?

我正在寻找一个脚本或软件,它可以检查 Mac 上的所有文件并报告受限/禁止字符(例如 \ / : * ? " < > |),而 Windows 无法使用这些字符。

有任何想法吗?

答案1

要查找有问题字符的文件名,可以使用 find:

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

将您要查找的所有字符放在方括号中。请注意,某些字符必须转义,因为它们具有特殊含义(例如,0-9 将查找所有数字,而不是 0、- 和 9)。基本上,您在双引号中指定的是一个正则表达式,文件名必须符合该正则表达式才能打印。

您可以创建一个包含所有文件列表的文件,如下所示:

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

如果使用-name而不是-regex,则可以指定一个基本的 shell 模式(其中 * 代表任意数量的字符,? 代表一个字符,[...] 代表一组字符)。这不太灵活,但可能足以满足您的目的:

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

(我不确定 Mac OS 是否具有与我正在使用的 GNU find 相同的查找功能。使用“man find”获取手册并了解如何使用正则表达式或 shell 模式)。

相关内容