find /full/path/dir -name '*.txt' -exec /bin/rm {} \;
在shell里很好,但是用一个sh脚本和一些类似的线popup来,让它从cronjob每晚运行,它会报告:
find: missing argument to `-exec'
一切。 我可能在每一个组合都试过反斜杠和引号。 我怎样才能做这个工作?
您的脚本文件中可能有Windows行结束符。 尝试运行dos2unix来转换它们。
您可以在shell提示下使用以下命令重现此错误:
$ find ... \;^M
按Ctrl – v Ctrl – m添加“^ M”的位置
我无法想象为什么
find /full/path/dir -name '*.txt' -print0 | xargs -0 rm
将无法工作。 为了testing你的cronjob,做这样的事情:
find /full/path/to/dir -name '*.txt' -print0 | xargs -0 >/tmp/logfile
这将只是回应xargs会删除到/tmp/logfile以便您可以手动检查。
这个错误发生在find不符合任何具有该条件的文件时,然后尝试用空栈执行rm,并返回该错误。
菲尔的build议是惊人的,所以请标记他! 🙂