Назад | Перейти на главную страницу

Неверный аргумент при запуске команды find с -exec и -mtime

На Centos появилось довольно странное сообщение об ошибке.

Я пробовал запустить эту команду:

find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;

И ошибка у меня:

find: invalid argument `-exec' to `-mtime'

Может ли "найти" быть другим в других дистрибутивах?

-mtime используется в течение нескольких дней, если вам нужно 2 часа, проверьте это:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

mmin указывает минуты, поэтому -mmin +120 отфильтрует те, которые были более 120 минут назад (2 часа). Из руководства:

-mtime n

Последний раз данные файла были изменены n * 24 часа назад. См. Комментарии к -atime, чтобы понять, как округление влияет на интерпретацию времени модификации файла.

-ммин п

Последний раз данные файла были изменены n минут назад.

в find реализация в MacOS немного отличается от реализации в Linux. Я считаю, что вы получили указанную выше ошибку в системе Linux.

В Linux mtime принимает только + - и число. Число - это количество дней.

Для того, что вы хотите сделать выше, вы должны использовать mmin

-mmin n
      File’s data was last modified n minutes ago.

Эта команда должна работать в Linux:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;