$ touch aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBB
$ crontab aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBB
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: No such file or directory
这种行为看起来很不寻常(注意它如何截断错误消息中的路径)。我正在使用 Debian bullseye 11。
这是一个错误,还是有特定原因导致 crontab 有如此特殊的限制?
我无法在此处的 docker 映像上复制它:https ://hub.docker.com/r/willfarrell/crontab
来自 Cygwin的版本
crontab
打印一条解释性错误消息:该消息解决了您的疑虑,但没有提供任何解释。
不幸的是 Debian 上的版本没有很好地解释:
然而,源代码(
apt-get source crontab
)给出了大量线索cron.h
:然后在
crontab.c
:如果从这些片段中看不出来,文件名的长度有 99 个字符的硬编码限制。除了任意的“应该足够长”之外,我看不出其他原因。正确的方法可能是使用
PATH_MAX
,但作者没有这样做。