AIX/Unix — удалить файлы старше x дней

Я уже несколько дней борюсь с этим. Это кажется достаточно простым, но я не могу найти правильную команду или аргументы, необходимые для выполнения этой (на первый взгляд) простой задачи. Мне нужно удалить файлы с подстановочными знаками в каталоге старше x дней. Я пробовал следующее, но безрезультатно, и мне интересно, возможно ли, что подстановочный знак является проблемой.

find /path/to/files/ -name file_* -mtime +45 -exec rm '{}' +
find /path/to/files/ -name file_* -mtime +45 -exec rm {} ;\
find /path/to/files/ -name file_* -mtime +45 | xargs rm

Находка работает нормально, выдает правильные файлы. Это удаление не работает.


person oitson13    schedule 26.07.2017    source источник
comment
может быть find /path/to/files/ -name "file_*" -mtime +45 -delete   -  person Zsigmond Lőrinczy    schedule 26.07.2017


Ответы (3)


Вам нужно передать подстановочный знак find, защитив его от расширения оболочки и деспециализировав последний ;:

find /path/to/files/ -name "file_*" -mtime +45 -exec rm {} \;
person Jean-Baptiste Yunès    schedule 27.07.2017

Я понял, что следующий код работал правильно для меня:

find /path/to/files/ -name file_* -mtime +45 -exec rm '{}' +
person oitson13    schedule 26.07.2017
comment
Только если вы запустите его в каталоге, где подстановочный знак ничему не соответствует. Правильное и надежное решение - указать подстановочный знак, как в ответе @Jean-Baptiste. - person tripleee; 20.05.2021

Для AIX 6.1 требуется небольшое изменение. Подробное объяснение включено (справедливое предупреждение)

найти . /путь/к/файлам/ -name "Файлы*.*" -mtime +45 -exec

Эта точка нужна. Для «Файлов*.» вы будете использовать свои имена. Моя папка — это папка пользовательского отчета, и дата файла включена в имя. Но все отчеты начинаются с «Ежедневно». Итак, у меня есть "Ежедневно.". Каждый день мы формируем 2 отчета. Конкретное имя отчета заключено между «Ежедневно» и датой его создания в имени файла. Так что Daily.* получает их все. Мне не удалось использовать ".". Это может быть характерно для AIX 6.1, которую мы используем. Команды AIX могут различаться в зависимости от версии.

Удачи!

person Dan    schedule 22.04.2019
comment
Звучит как еще один вопрос (если немного неясный вопрос). - person Lorinczy Zsigmond; 22.04.2019