我们正在使用crontab来安排作业,并且它没有选择具有[或]或¿的处理文件。提供文件名是否有任何限制,或者这些字符在UNIX中意味着什么?有没有像这样的其他变量我们不应该在文件名中使用?提前谢谢。
答案 0 :(得分:1)
以下是Linux和Unix(包括* BSD)系统的一般规则:
您可以使用基于点的文件扩展名来识别文件。例如:
.sh = Shell file
.tar.gz = Compressed archive
Linux / UNIX:保留字符和单词
避免在文件名中出现以下字符:
/
>
<
|
:
&
请注意,Linux和UNIX允许使用空格,&lt;,&gt;,|,\,:,(,),&amp;,;以及通配符,例如?和*,使用\符号引用或转义。
如果您可以避免文件名中的空格,那将是一件好事。它将使您的脚本编写更加轻松。
我从this link得到了答案。我只是在这里粘贴它,以便即使该网站出现故障也可以使用此信息。
答案 1 :(得分:0)
在* nix文件名中实际上非法的唯一字符是/
(保留为目录分隔符)和NUL(因为它是C字符串终止符)。其他一切都是公平的游戏,虽然各种实用程序可能会失败某些字符 - 通常是对shell有特殊意义的字符。这些将需要引用或转义才能正确处理。