我正在编写一个脚本来删除基于其年龄的文件夹和文件,以便在运行Busybox shell的Synology Diskstation框上作为计划任务运行。我持续得到的错误似乎与同一行上的FIND命令及其相关的EXEC调用有关,因为这个shell似乎不喜欢\;我在本论坛的其他地方看过的表示法,所以我尝试在行尾使用单引号格式,但仍然没有。
当我尝试通过SSH以root用户身份运行脚本时,我看到的确切错误消息是: find:-exec CMD必须以';'结尾
这是脚本:
#!/bin/bash
# Define a timestamp function
timestamp() {
date +"%T"
}
#Run the job
[ -t 0 ] || exec >> "/volume1/homes/JSmo/Scripts/tmp/daily_purge_script.log" 2>&1
echo "Beginning folder delete task at: $(timestamp)"
find "/volume1/Synology Backup/CloudStation/jfs02/Local_copy_jfs02_f_drv/WindowsImageBackup/jfs02/Backup"/* -mtime +30 -exec rm -rf {} ';'
echo "Folder delete job completed at: $(timestamp)"
exit 0
我已经针对这个问题研究了很多解决方案并尝试了很多语法组合,但是我可以在这里错过一些简单的内容吗?
由于
修改
感谢@WalterA的鹰眼评论,我在这里为其他人添加了这个评论。 如果您有此错误,请在Windows系统上使用NotePad ++等文本编辑器检查您的行尾(EOL)设置,并确保将其设置为Unix / OSX而不是DOS / Windows 。请参阅下面的屏幕截图,了解如何执行此操作: