Страницы

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

понедельник, 6 января 2020 г.

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

#linux


Нужно написать команду, которая бы удаляла все файлы расширения .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]

Как переписать?
    


Ответы

Ответ 1



я вижу в этой команде две ошибки и одну неоптимальность: 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

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

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