有没有办法用一个命令重命名多个文件。在 Windows 中,我知道命令
ren *.* *.jpg
Mac OS X 中是否有类似的命令可以运行,而不必在每个单独的文件上按回车键并进行重命名。
答案1
在类unix系统中,使用find更容易
find ./
(首先尝试一下,以确保你的文件列表符合你的预期
find ./ -exec mv ${} ${}.jpg \;
这会将 .jpg 附加到找到的每个文件的末尾。更改最终扩展名(而不仅仅是附加)的正则表达式留给读者练习。
答案2
虽然使用find
和for
循环很有效,但 Perl 通常会自带/usr/bin/rename
(至少在 Linux 中),但我不确定您是否在 MacOSX 上拥有它(至少在我的旧 10.3 中没有)。
如果你没有,你可以从以下位置获取此脚本消费者行动网络。 和这就是使用它:
$ ls
tata.jpg titi.jpg toto.jpg truc tutu
$ rename -v 's/\.jpg$/.JPG/' *.jpg
tata.jpg renamed as tata.JPG
titi.jpg renamed as titi.JPG
toto.jpg renamed as toto.JPG
$ ls
tata.JPG titi.JPG toto.JPG truc tutu
答案3
这将起作用(并带来更大的灵活性):
shopt -s extglob
for file in *.*; do mv ${file} ${file/%.*([^.])/.jpg}; done
还有非标准的 Unix 命令行工具可以更简洁地完成工作。