Bash 如何使用shell脚本重命名多个文件?

Bash 如何使用shell脚本重命名多个文件?,bash,shell,Bash,Shell,我是shell脚本的初学者。我有4张图片: 1.png, 2.png, 3.png, 4.png 如何将这些图像重命名为: img1.png, img2.png, img3.png, img4 将此用作脚本,并将文件名作为输入。这是未经测试,但应该给你一个线索 #! /bin/bash for file in "$@"; do mv "$file" "img${file}" done 使用基于perl的: 查看rename命令,您可以执行以下操作 rename s/^

我是shell脚本的初学者。我有4张图片:

 1.png, 2.png, 3.png, 4.png 
如何将这些图像重命名为:

img1.png, img2.png, img3.png, img4

将此用作脚本,并将文件名作为输入。这是未经测试,但应该给你一个线索

#! /bin/bash    
for file in "$@"; do
     mv "$file" "img${file}"
done
使用基于perl的:


查看rename命令,您可以执行以下操作

rename s/^/img/g *png
对于以png结尾的所有文件(
*png
),这将用
img
替换(
s/
)文件名的开头(注为
^

.如果你没有,你可以从这里得到命令


例如

您是否尝试搜索
重命名文件bash
?很明显,您没有这样做,因为第一个结果告诉您如何做。@mklement0,谢谢您的提示。不客气;再想想,也许对*.png中的文件使用
;do
是一种更直接的方式来演示这个本来不错的
bash
解决方案。基于Perl的
rename
实用程序是一个很好的技巧,但是您应该在下面链接到更健壮、更强大的版本。这里的
g
选项是没有意义的,因为定义的
^
每行只能匹配一次;另外,您希望
*.png
避免误报。
rename s/^/img/g *png