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

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

Я попытался запустить эту команду:

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

И ошибка, которую я получил:

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

Может ли 'find' отличаться в других дистрибутивах?

2 ответа

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

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

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

-время 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 \;
Другие вопросы по тегам