缺少-exec的参数

时间:2016-11-15 20:20:14

标签: bash amazon-web-services amazon-s3 gnu-findutils

我遇到了bash命令的问题,返回以下错误:

102

我正在运行的实际命令是:

/usr/bin/find: missing argument to `-exec'

目标是每晚从crontab调用此命令来搜索目录,并使用aws cli将任何超过14天的文件移动到Amazon S3。

find命令在-exec之前正常工作,输出如下:

/usr/bin/find /backup-directory/ -maxdepth 1 -type f -mtime +14 -printf "%f\n" -exec /usr/local/bin/aws s3 mv /backup-directory/{} s3://my-s3-bin/{}\;

只有具有显式文件名的aws cli move命令才能按预期移动:以下命令将移动20161030002947.Pg,例如,从本地备份目录移动到s3 bin。

/usr/bin/find /backup-directory/ -maxdepth 1 -type f -mtime +14 -printf "%f\n"
20161030002947.Pg
20161029002644.Pg
20161027002705.Pg
20161028002402.Pg
20161031002440.Pg

当我将它们与-exec和{}参数放在一起时,我不知道它为什么会破碎。

从完整路径调用所有内容的原因是为了确保从crontab调用命令时没有无法预料的问题,并且此特定服务器上的操作系统是Debian 8.

1 个答案:

答案 0 :(得分:4)

我建议更换

{}\; 

通过

{} \;