使用带 bash 的正则表达式重命名文件

可能的复制品:
在 unix 中一次重命名多个文件

我想重命名所有文件从一个文件夹使用正则表达式(添加一个名称的名称结束) ,并移动到另一个文件夹。

我认为应该是这样的:

mv -v ./images/*.png ./test/*test.png

但是没有用。

有人能给我一个解决办法吗?

104676 次浏览

试试这个:

for x in *.png;do mv $x test/${x%.png}test.png;done

如果您使用的是 linux,请检查特殊的 rename命令,它可以完成这项工作——使用正则表达式进行重命名。

rename 's/^images\/(.+)/test\/$1.png/s' images/*.png

否则,在文件名上编写一个 bash 循环作为 建议走 T 台

$ for old in ./images*.png; do
new=$(echo $old | sed -e 's/\.png$/test.png/')
mv -v "$old" "$new"
done

另一个解决方案是一个名为“ mmv”的工具: mmv“ ./images/* . png”./test/# 1test.png”