![如何高效地重命名数千个文件?](https://linux22.com/image/60472/%E5%A6%82%E4%BD%95%E9%AB%98%E6%95%88%E5%9C%B0%E9%87%8D%E5%91%BD%E5%90%8D%E6%95%B0%E5%8D%83%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我的 Fedora PC 中有一堆音乐文件(实际上是数千个文件),我想用两个规则重命名它们:
- 每个空格必须替换为字符
_
(下划线),并且 - 每个大写字母都必须替换为对应的小写字母。
例如,歌曲的文件名玻璃月亮下,这是专辑中的第六首曲目,06 Under A Glass Moon.mp3
在我的电脑中命名,我希望将其命名为06_under_a_glass_moon.mp3
.
我的问题是:是否可以这样做每一个我收藏中的歌曲/文件,无需手动操作。
笔记:澄清一下,我不需要编辑歌曲的元数据;我用 EasyTAG 来做到这一点。我所需要做的就是修改歌曲的文件名。
更新:我知道这个问题已经有一段时间了,有些人已经回答了,但我使用 EasyTAG 找到了一个更简单的解决方案。这样做的方法是:
View --> Scanner Mode --> Process Fields.
在那里你可以选择将某些字符替换为其他字符(不限于将“”替换为“_”),你可以随意选择小写或大写,等等。此外,您可以决定要更改哪些字段。非常有用的功能。
另外,感谢那些回答的人。您的帮助非常有用。
答案1
您可以安装Perl脚本rename
。然后尝试这样做:
$ rename -n 's/[A-Z]/lc($&)/ge; s/\s/_/g' files*
-n
(测试正常后 取下开关)
有两个实用程序称为rename
. Fedora 中无法做到这一点。其他一些发行版默认附带 Perl 发行版。如果运行以下命令 ( GNU
)
$ file "$(readlink -f "$(type -p rename)")"
你有一个像这样的结果
.../rename: Perl script, ASCII text executable
并且不包含:
ELF
那么这似乎是正确的工具 =)
如果没有,例如在 Fedora 上,手动安装。
最后但并非最不重要的一点是,这个工具最初是由 Perl 的父亲 Larry Wall 编写的。