Я использую следующую команду, чтобы очистить каталог от файлов и каталогов старше 30 дней и переместить их в архивный каталог, который я могу удалить через несколько недель, если никто не попросит вернуть их файлы. Целевой каталог имеет подкаталоги по имени пользователя, как и каталог архива.
Это команда, которую я использую:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Я предложил модифицированную версию этого , чтобы ответить на вопрос о том, спросить убунт, другой пользователь редактирует код , чтобы изменить конец строки \;
для , +
как это быстрее (и правильнее?). Посмотреть здесь
Тем не менее, использование +
таким образом работает, если -exec
команда, ls -lh
но не в фактической команде, которую я использую. Если я попробую это сделать, +
я получу сообщение об ошибке:
find: missing argument to '-exec'
Я не понимаю, почему он так себя ведет, или какой будет правильная команда. Пожалуйста, не просто публикуйте исправление команды, я хотел бы понять, а не просто слепо следовать предложению.
+
предоставляет несколько аргументов для одной и той же команды, но mv
не может справиться с этим!