1

我试图重命名服务器上的文件以从文件名中删除特殊字符(空格、æøå 等)。问题是我无法让重命名功能正常工作。在我的本地机器上,重命名功能按预期工作

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

重命名所有文件并删除特殊字符。

但是,在服务器上,上述调用没有任何效果。此外,没有错误消息。服务器上没有可用于重命名功能的手册页,当我尝试时

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

...有用的消息“重命名为文件”...

有什么建议么?服务器上的外壳(正在运行)是某种监狱外壳,服务器正在运行并行 - 东西和 cpanel(如果有帮助的话)......关于

4

2 回答 2

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 {} \;
于 2014-04-22T10:15:34.740 回答
0

@jonasfh:cpanel jailshell 通常安装在 centos 主机之上。现在您可以从 redhat util-linux 包中查找 rename,这不是您尝试执行的带有扩展正则表达式的常用 perl 脚本,只是简单的 redhat rename。

于 2014-10-25T14:27:57.740 回答