Я пытаюсь сделать некоторый резервный скрипт, поскольку файлы журнала становятся все больше и больше. У меня есть копирование текущего файла (например, secure
файла в /var/log/
) и удаление содержимого из этого файла. Но есть некоторые файлы с именем , как: secure.1
, secure.2
и все это я хотел бы сосчитать их, и если число больше , то 2
архивировать их все. Я не могу найти способ найти эти файлы или посчитать их. Первое, что пришло мне в голову, было:
find /var/log/ -name *.1 | wc -l
и это всегда будет печатать, 1
поскольку есть один файл secure.1
. Как я могу рассчитывать, как в цикле for, где я могу указать диапазон чисел, похожих {1..5}
или похожих. Есть ли способ отделить эти файлы и сделать их как одно целое и их резервное копирование или удаление или что-нибудь еще ... или, прежде всего, как я могу найти все эти числа, которые заканчиваются на число.
find /var/log/ -name '*.1' ...
logrotate
для вашей цели.Ответы:
С простым
-name
:или для любой цифры:
или если после цифры возможны другие символы
источник
Чтобы найти имена файлов, оканчивающиеся цифрами в диапазоне от
.
[1 до 5].источник
Почему бы просто ...
find
Насколько я могу судить, вам не нужно - оболочка использует те же глобусы, что и в-name
. И если все файлы находятся в одном каталоге ... Конечно, если есть подкаталоги, которые вас также интересуют, этоfind
может быть полезным - прогулка по деревьям в оболочке может быть головной болью.источник