Это - основанное на Perl rename
найденный на Debian, Ubuntu и производных, судящих синтаксисом. Вы не можете использовать tr
оператор, потому что это действует на целую строку. Но можно соответствовать расширению и нижнему регистру это с \L
.
rename 's/\.[^.]*$/\L$&/' *.JPG *.MOV
Здесь является ненужным, но если бы regexp соответствовал больше, чем часть, которую Вы хотите к нижнему регистру, то Вы могли поместить часть, которая будет согласована в группе:
rename 's/\.([^.]*)$/.\L$1/' *.JPG *.MOV
Замена *.JPG *.MOV
*.*
действовать на все файлы независимо от расширения. В ударе ≥4.3 (и также в ударе 4.0–4.2, с протестом, что это также пересекает символьные ссылки на каталоги), можно легко действовать на файлы в подкаталогах и так далее рекурсивно:
rename 's/\.[^.]*$/\L$&/' **/*.*
Для zsh вентиляторов ( :r
и :e
модификаторы изолируют расширение от остальной части файла):
autoload zmv
zmv '*.(MOV|JPG)' '${f:r}.${(L)f:e}' # these extensions, current directory
zmv '*.*' '${f:r}.${(L)f:e}' # all extensions, current directory
zmv '**/*.*' '${f:r}.${(L)f:e}' # all extensions, recursive directory traversal
Тот путь к файлу, кажется, компилируется в svc.startd:
myhostname# strings /lib/svc/bin/svc.startd |grep '/var/svc/log'
/var/svc/log/
/var/svc/log/
/var/svc/log/
/var/svc/log/
Я предполагаю, что Вы могли попытаться изменить местоположение каталога к где-то в другом месте и сделать /var/svc/log
символьная ссылка на новое местоположение, но я не полагаю, что возможно сделать сервисы всем журналом в один файл - это просто не, как SMF был разработан для работы. И так как svc.startd запускается рано в процессе начальной загрузки, прежде чем / var будет даже смонтированное чтение-запись, связываясь /var/svc/log
некоторому другому - возможно даже размонтированный - раздел может доставить неприятности.