Сценарий установки для периодического запуска, но немедленно завершает работу, если условие не выполняется.
напр.
#!/bin/sh
df "<mount point or device node or /var/log>" |
grep -q -e '100%' -e '9[5-9]%' ||
exit
find /var/log -type f -name "*old logs*" -exec rm {} +
В именах файлов нам нужно заменить последовательность цифр, за которой следует точка — \d+.
— на счетчик с 4 -нулями, за которым следует точка — sprintf("%04d.", ++$c)
.
rename -n -- 'our $c; s/\d+\./sprintf("%04d.", ++$c)/e' *.jpg
Чтобы не заполнять нулями, нам не нужно sprintf
, а только для конкатенации счетчика и точки. Поскольку оператор конкатенации также является точкой,
rename -n -- 'our $c; s/\d+\./++$c. "."/e' *.jpg
Примечания
Удалите -n
, если убедитесь, что он работает правильно.
В некоторых дистрибутивах rename
может называться perl-rename
.
our $c;
был введен для устранения ошибки "Глобальный символ "$c" требует явного имени пакета" . В моей системе нет необходимости... ¯\(ツ)/¯