linuxshellunixjail-shell

rename files on server cpanel jailshell


Im trying to rename files on my server to remove special characters (whitespace, æøå, etc) from the filenames. The problem is that i cannot get the rename-function to work. On my local machine the rename function works as expected

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

renames all files and removes special characters.

On the server, however, the above call has no effect whatsoever. ALso, there is no error message. There is no man-pages-available for the rename-function on the server, and when I try

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

...the helpfull message "rename from to files" ...

Any suggestions? The shell on the server (running ) is some sort of jailshell, the server is running parallells - stuff and cpanel (if that helps)... regards


Solution

  • Create a script called renamer.sh:

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

    And use find:

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