Страницы

Поиск по вопросам

четверг, 14 февраля 2019 г.

удаление старых файлов с помощью find

Нужно написать команду, которая бы удаляла все файлы расширения .txt из папки /home/u20806/public_html, которые были созданы или изменены 25 минут назад.
Сделал так: find /home/u20806/public_html -daystart -maxdepth 1 -mmin +25 -type f -name "*.txt" \ -exec rm -f {} \;
Выдает ошибку find: path must precede expression: Usage: find [-H][-L][-P][-Olevel][-D help|tree|search|stat|rates|opt|exec][path...][expression]
Как переписать?


Ответ

я вижу в этой команде две ошибки и одну неоптимальность:
find /home/u20806/public_html -daystart -maxdepth 1 -mmin +25 -type f -name "*.txt" \ -exec rm -f {} \;
во-первых, благодаря опции -daystart программа find «найдёт» не совсем то, что вам требуется: время (указанное опцией -mmin) будет «отсчитываться» не от текущего момента, а от начала этого дня (см. внимательней на описание опции -daystart в man find).
во-вторых, параметр \ между -name и -exec не нужен и порождает описанную ошибку.
в-третьих, и действие -exec ... лучше заменить на действие -delete.
резюмируя, предложу написать, например, так:
find /home/u20806/public_html -maxdepth 1 -mmin +25 -type f -name "*.txt" -delete

Комментариев нет:

Отправить комментарий