我在编写bash脚本时很恐怖,但是我想知道是否可以通过目录递归循环并通过“1.png”,“2”重命名其中的所有文件。 PNG“等,但我需要它重新启动一个它为每个新文件夹进入。以下是可用的脚本,但只适用于一个目录。Bash遍历目录并重命名每个文件
cd ./directory
cnt=1
for fname in *
do
mv $fname ${cnt}.png
cnt=$(($cnt + 1))
done
在此先感谢
编辑 谁能其实写这个代码呢?我不知道如何编写bash,这对我来说很困惑
为每个$ fname添加一个测试,查看它是否为目录,然后再次调用此脚本,并将新目录作为cd目标。另外,如果这是大小的任何内容,您需要阅读有关格式化变量的信息,以便您可以生成像001-999(具有前导零)的数字,而无需在$ cnt值前面管理前缀00的字符串。否则,你会陷入困境,试图弄清楚如何对1.png 10.png 2.png进行排序......祝你好运。 – shellter
排序不是问题,我永远不会有理由对它们进行排序,但我实际上是在找人写出来,因为我不知道如何写bash,我只是迷失在看它 –