#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
Комментариев нет:
Отправить комментарий