【发布时间】:2011-12-29 04:34:12
【问题描述】:
我在编写 bash 脚本方面很糟糕,但我想知道是否可以递归循环遍历一个目录并将其中的所有文件重命名为“1.png”、“2.png”等,但我需要对于它输入的每个新文件夹,它都会重新启动。这是有效的脚本,但仅适用于一个目录。
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 ... 祝你好运。
-
排序不是问题,我永远没有理由对它们进行排序,但我实际上是在找人写出来,因为我不知道如何写 bash,我看着就迷路了