rm 在 cron 脚本中失败

Nic*_*las 5 cron

我有一个 cron 作业调用一个运行良好的 bash 脚本,除了其中的一行假设删除目录中的所有罚款。这一行的结果始终是“没有这样的文件或目录”,即使我已经(多次)验证了该目录中存在文件。有问题的行很简单:

rm /dir1/dir2/dir3/*
Run Code Online (Sandbox Code Playgroud)

该脚本在终端中手动运行时工作正常,因此它必须与 cron 的运行方式有关。我试过给 'dir3' 和它里面的所有文件所有可能的权限,所以它不应该是一个权限问题。(目录和文件也归用户所有)。我试过在“crontab”中指定“SHELL=/bin/bash”。rm 命令没有设置粘滞位,也没有别名。

有趣的是,将 'rm' 命令更改为 'ls' 会产生相同的负面结果(除非您删除尾随的 '*',然后就可以了)。

我在这里缺少什么?

Nic*_*las 4

原来是我的坏事。我在脚本中实际看到的内容是:

rm "/dir1/dir2/dir3/*"
Run Code Online (Sandbox Code Playgroud)

我没有意识到引号会阻止通配符扩展,所以我从未将它们包含在问题中。删除引号解决了问题,因为我确信如果我包含它们,就会向我指出。尽管我不是 100% 确定应该如何在没有引号的情况下处理路径中的空格。