как удалить все файлы, которые старше, чем X дней и которые заканчиваются числом / с

308
King David

мы хотим удалить все файлы, оканчивающиеся числом с цифрой или более, как 2 цифры или три цифры и т. д.

примечание - когда файлы заканчиваются номером, это говорит нам, что этот файл был повернут и фактически резервируется с уникальным номером

пример

-rw-r--r-- 1 kafka hadoop 73668 Aug 5 07:56 controller.log.2018-08-05-07 -rw-r--r-- 1 kafka hadoop 73668 Aug 5 08:56 controller.log.2018-08-05-08 -rw-r--r-- 1 kafka hadoop 658893 Aug 7 11:53 controller.log.3 -rw-r--r-- 1 kafka hadoop 1092 Aug 7 14:35 controller.log.2 -rw-r--r-- 1 kafka hadoop 2750003 Aug 7 14:52 state-change.log.2018-08-07-14 -rw-r--r-- 1 kafka hadoop 3678 Aug 7 14:52 log-cleaner.log.2018-08-07-14 -rw-r--r-- 1 kafka hadoop 199094 Aug 7 14:52 controller.log.2018-08-07-14 -rw-r--r--. 1 kafka hadoop 24431 Aug 7 15:07 kafka.err -rw-r--r-- 1 kafka hadoop 1147 Aug 7 16:02 server.log.10 -rw-r--r-- 1 kafka hadoop 1061 Aug 7 16:02 server.log.9 -rw-r--r-- 1 kafka hadoop 135465 Aug 7 16:07 server.log.8 -rw-r--r-- 1 kafka hadoop 10278 Aug 7 16:07 server.log.7 -rw-r--r-- 1 kafka hadoop 10350 Aug 7 16:07 server.log.6 -rw-r--r-- 1 kafka hadoop 10353 Aug 7 16:07 server.log.5 -rw-r--r-- 1 kafka hadoop 10322 Aug 7 16:07 server.log.4 -rw-r--r-- 1 kafka hadoop 1272 Aug 7 16:07 log-cleaner.log -rw-r--r-- 1 kafka hadoop 473322 Aug 7 16:07 controller.log.1 -rw-r--r-- 1 kafka hadoop 170 Aug 7 16:07 controller.log 

Ожидаемые результаты:

-rw-r--r--. 1 kafka hadoop 24431 Aug 7 15:07 kafka.err -rw-r--r-- 1 kafka hadoop 1272 Aug 7 16:07 log-cleaner.log -rw-r--r-- 1 kafka hadoop 170 Aug 7 16:07 controller.log 

Я пробую эту опцию, но эта опция не работает

 find . -type f -mtime +6 -name '*[0-9]' -print -delete 

пожалуйста, помогите мне построить правильный синтаксис,

0

1 ответ на вопрос

2
confetti

Вам нужно использовать -regexпараметр для find.

find . -type f -mtime +6 -regex '^.*[0-9]$' -print -delete 

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

Также обратите внимание, что -mtimeне поддерживает числа с плавающей запятой и всегда округляется до следующего дня. Поэтому, если вы хотите удалить файлы, которые были изменены по крайней мере шесть дней назад, вы предоставите -mtime +5.

Похожие вопросы