Неверный аргумент при запуске команды 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 \;