Найти файлы, которые заканчиваются на цифру

Найти файлы, которые заканчиваются на цифру

Я пытаюсь сделать какой-нибудь скрипт резервного копирования, так как файлы журнала становятся все больше и больше. У меня есть копирование текущего файла (например, secureфайла в /var/log/) и удаление содержимого из этого файла. Но есть некоторые файлы с именем типа: secure.1, secure.2и все это я люблю подсчитывать их, и если число больше, то 2архивировать их все. Я не могу найти метод, чтобы найти эти файлы или подсчитать их. Первая мысль, которая пришла мне в голову, была:

find /var/log/ -name *.1 | wc -l

и это всегда будет печататься, 1так как есть один файл secure.1. Как мне посчитать like в цикле for, где я могу указать диапазон чисел like {1..5}или похожих. Есть ли способ разделить эти файлы и сделать их одним и сделать их резервной копией или удалить или что-то еще ... или, прежде всего, как мне найти все эти числа, которые заканчиваются числом.

решение1

С помощью простого -name:

find /var/log -name '*.[2-9]'

или для любой цифры:

find /var/log -name '*.[[:digit:]]'

или если после цифры возможны другие символы:

find /var/log -name '*.[2-9]*'

решение2

Чтобы найти имена файлов, заканчивающиеся на число в диапазоне от .[1 до 5].

find /var/log/ -type f -regextype sed -regex ".*\.[1-5]$"

решение3

Почему бы просто не...

for log in /var/log/*.[1-5]
do whatever to "$log"
done

findНасколько я могу судить, вам это не нужно — оболочка использует те же глобалы, что и в -name. И если все файлы находятся в одном каталоге... Конечно, если есть подкаталоги, которые вас также интересуют, то это findможет быть полезно — обход деревьев в оболочке может быть головной болью.

Связанный контент