Я имею проблему с командой Баш возвращающий следующую ошибку:отсутствует аргумент -exec
/usr/bin/find: missing argument to `-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/{}\;
Цель состояла в том, чтобы это команда, вызванная из crontab, для поиска в каталоге и перемещения любого файла старше 14 дней на Amazon S3 с использованием aws cli.
Команда находки корректно работает вплоть до как раз перед -exec со следующим выходом:
/usr/bin/find /backup-directory/ -maxdepth 1 -type f -mtime +14 -printf "%f\n"
20161030002947.Pg
20161029002644.Pg
20161027002705.Pg
20161028002402.Pg
20161031002440.Pg
И только AWS кли переместить команды с явным именем файла для перемещения работ по назначению: Следующей команды переместите 20161030002947.Pg, например, из локального каталога резервного копирования в bin s3.
/usr/local/bin/aws s3 mv /backup-directory/20161030002947.Pg s3://my-s3-bin/20161030002947.Pg
Я не знаю, почему он ломается, когда я помещаю их вместе с параметрами -exec и {}.
Причина все вызывается из полного пути, чтобы убедиться, нет никаких непредвиденных проблем, когда команда вызывается из кронтаб, и ОС на данном сервере является Debian 8.
по крайней мере, пусть это выполнить, так что спасибо. Но теперь я получаю неожиданные результаты. Похоже, что это не относится к -printf «% f \ n». 20161030002947.Pg Указанный пользователем путь /backup-directory//backup-directory/20161030002947.Pg не существует. 20161029002644.Pg Указанный пользователем путь /backup-directory//backup-directory/20161029002644.Pg не существует. – Sheldon
Я только что протестировал это, заменив команду aws эхом, и у меня должно быть непонимание того, что делает '-printf '% f \ n" ', потому что полный путь по-прежнему попадает в' {} '... Это это результат с эхом: 'find/backup-directory/-maxdepth 1 -тип f -mtime +14 -printf"% f \ n "-exec echo/backup-directory/{} s3:/my-s3-bin/{} \; 20161030002947.Pg /backup-directory//backup-directory/20161030002947.Pg s3: // my-s3-bin // backup-directory/20161030002947.Pg' – Sheldon
Printf записывает на стандартный вывод. это не влияет на -exec. –