Переименовать файлы на сервере cpanel jailshell

Я пытаюсь переименовать файлы на моем сервере, чтобы удалить специальные символы (пробелы, символы и т. Д.) Из имен файлов. Проблема в том, что я не могу заставить работать функцию переименования. На моей локальной машине функция переименования работает как положено

rename 's/[^a-zA-Z\.0-9]*/_/g' *.mp3 

переименовывает все файлы и удаляет специальные символы.

Однако на сервере вышеуказанный вызов не имеет никакого эффекта. ТАКЖЕ, нет сообщения об ошибке. Там нет man-страниц, доступных для функции переименования на сервере, и когда я пытаюсь

rename --help
call: rename from to files...

... полезное сообщение "переименовать из в файлы" ...

Какие-либо предложения? Оболочка на сервере (работает) - это своего рода джейлшелл, на сервере работают параллели - вещи и cpanel (если это помогает)... привет

2 ответа

Решение

Создайте скрипт с именем renamer.sh:

dname=$(dirname "$1")
bname=$(basename "$1")
clean=$(tr -dc 'a-zA-Z.0-9' <<< "$bname")
mv "$1" "$dname/$clean"

И использовать find:

find -type f -name '*.mp3' -exec sh renamer.sh {} \;

@jonasfh: jpanshell cpanel обычно устанавливается поверх хостов centos. Теперь вы можете искать переименование из пакета redhat util-linux, который не является обычным perl-скриптом с расширенными регулярными выражениями, который вы пытаетесь сделать, а просто простым переименованием redhat.

Другие вопросы по тегам