Unix下文件名有限制吗?

Unix下文件名有限制吗?

[我们正在使用 crontab 来安排作业,但它并没有选择包含或]或 的文件进行处理¿

文件名是否有任何限制,或者这些字符在 UNIX 中是否有某种含义?

是否存在我们不应该在文件名中使用的其他变量?

答案1

在 Unix 系统上,文件名可以包含除以下字符之外的所有字符:

  • /(斜杠)
  • NUL(ASCII 空值)

除此之外,POSIX 允许任何类型的字符,甚至是 UTF-8——但这并不意味着每个应用程序(无论是 shell、命令行工具、文件系统等)都可以处理它。出于可移植性原因,您应该使用可移植文件名字符集

只要确保当你使用具有特殊 shell 含义的字符(比如*globs)时,要引用文件名,例如如果你的文件名为file*name,请使用:

./some-command "file*name"

答案2

这取决于文件系统,例如 ext4 许可证(来自维基百科)

除 NUL ('\0') 和 '/' 以及特殊文件名“.”和“..”之外的所有字节

相关内容