XFS文件系统中的所有非法字符是什么?

时间:2009-03-16 18:49:03

标签: filesystems illegal-characters

有人可以提供(或指向我列表)XFS文件系统中的所有非法字符吗?我正在编写一个需要清理文件名的应用程序。

编辑:

好的,所以POSIX文件系统应该允许除NUL字符,正斜杠和'。'之外的所有字符。和'..'文件名是保留的。所有其他例外都是应用程序级别的。谢谢!

2 个答案:

答案 0 :(得分:4)

POSIX文件系统(包括XFS)允许文件名中的每个字符,但NUL(0x00)和正斜杠(/; 0x2f)除外。

  • NUL标志着C弦的结束;因此不允许在文件名中使用。
  • /是目录分隔符,因此不允许使用。
  • 以点(.; 0x2e)开头的文件名被视为隐藏文件。这是用户区,而不是内核或文件系统约定。
  • 您可能会遵循惯例 - 例如,UTF-8文件名 - 在这种情况下,还有许多限制,包括使用哪种规范化表单。

现在,你可能也想要禁止其他事情;处理各种奇怪字符的文件名并不好玩。我强烈建议使用白名单方式。

此外,在处理文件名时,请注意每个目录中的..条目。您不想遍历它并允许任意路径。

来源:Single Unix Spec v. 3, §3.169,“可以从除斜杠字符和空字节之外的所有字符值的集合中选择组成名称的字符。”

答案 1 :(得分:0)

根据Wikipedia,除NUL之外的任何字符在XFS文件系统文件名中都是合法的。当然,POSIX通常不允许在文件名中使用正斜杠'/'。除此之外,任何事情都应该是好的,包括国际角色。