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

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

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

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

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

И вот какая ошибка у меня возникла:

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

Может ли «находка» отличаться в других дистрибутивах?

решение1

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

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

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

-mtime n

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

-ммм н

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

решение2

реализация 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 \;

Связанный контент