如何在文件名(也是子目录)中用一个空格替换双空格(CloudLinux Server版本6.10)

问题描述 投票:-2回答:2

我想在很多照片的文件名中用一个空格替换双空格。这些照片位于目录/ foto及其子文件夹中。这该怎么做?例如“photo 1.jpg”需要成为“photo 1.jpg”

最好的方法是使用命令行,因为它位于CloudLinux服务器上。 (它超过50GB的照片)。我在这里搜索了Stackoverflow,也是谷歌找到我需要的命令。我想重命名是要使用的,或者mv。

我发现的唯一的事情是关于替换空间和替换其他符号的命令,而不是关于双(多)空格的命令。

linux replace rename spaces
2个回答
0
投票

使用这个,使用Perl的重命名:

rename 's/\s{2}/ /g' files*

当输出看起来很好时,移除-n开关。

还有其他具有相同名称的工具可能会或可能不会这样做,所以要小心。

如果您运行以下命令(GNU

$ file "$(readlink -f "$(type -p rename)")"

你有一个包含Perl script, ASCII text executable但不包含ELF的结果,那么这似乎是正确的工具=)

如果没有,为了使它成为DebianUbuntu衍生物的默认值(通常已经是这种情况):

$ sudo update-alternatives --set rename /path/to/rename

/path/to/rename替换为perl rename可执行文件的路径。


如果您没有此命令,请搜索包管理器以安装它或do it manually(没有deps ...)


这个工具最初是由Perl的父亲Larry Wall编写的。


0
投票
find -iname \*.* | rename -v "s/\s{2}/ /g"

这是帮助我的最后一个命令。我使用perl重命名,请参阅Gilles的回答

© www.soinside.com 2019 - 2024. All rights reserved.