Переименовать файлы на сервере 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.