[
我们正在使用 crontab 来安排作业,但它并没有选择包含或]
或 的文件进行处理¿
。
文件名是否有任何限制,或者这些字符在 UNIX 中是否有某种含义?
是否存在我们不应该在文件名中使用的其他变量?
答案1
在 Unix 系统上,文件名可以包含除以下字符之外的所有字符:
/
(斜杠)NUL
(ASCII 空值)
除此之外,POSIX 允许任何类型的字符,甚至是 UTF-8——但这并不意味着每个应用程序(无论是 shell、命令行工具、文件系统等)都可以处理它。出于可移植性原因,您应该使用可移植文件名字符集。
只要确保当你使用具有特殊 shell 含义的字符(比如*
globs)时,要引用文件名,例如如果你的文件名为file*name
,请使用:
./some-command "file*name"
答案2
这取决于文件系统,例如 ext4 许可证(来自维基百科)
除 NUL ('\0') 和 '/' 以及特殊文件名“.”和“..”之外的所有字节