我尝试重命名服务器上的文件,以从文件名中删除特殊字符(空格,æøå等)。问题是我无法使重命名功能起作用。在我的本地机器上,重命名功能按预期工作
rename 's/[^a-zA-Z\.0-9]*/_/g' *.mp3
重命名所有文件并删除特殊字符。
但是,在服务器上,上述调用无效。此外,没有错误消息。服务器上的重命名功能没有可用的man-pages,当我尝试
时rename --help
call: rename from to files...
...有用的消息“从文件重命名”......
有什么建议吗?服务器上的shell(运行)是某种jailshell,服务器正在运行parallells - stuff和cpanel(如果有帮助的话)......问候
答案 0 :(得分:0)
创建一个名为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 {} \;
答案 1 :(得分:0)
@jonasfh:cpanel jailshell通常安装在centos主机的顶部。 现在你可以从redhat util-linux软件包中查找重命名,这不是通常的perl脚本,你正在尝试使用扩展的正则表达式,只需简单的redhat重命名。