Bash遍历目录并重命名每个文件

时间:2011-11-15 03:33:52

标签: bash loops rename

我在编写bash脚本时非常糟糕,但我想知道是否可以递归遍历目录并用“1.png”,“2. png”等重命名其中的所有文件,但我需要它为每个进入的新文件夹重启一次。这里的脚本可以工作但只能用于一个目录。

cd ./directory
cnt=1
for fname in *
do
    mv $fname ${cnt}.png
    cnt=$(( $cnt + 1 ))
done

提前致谢

修改 任何人都可以实际编写此代码吗?我不知道怎么写bash,这对我来说很混乱

2 个答案:

答案 0 :(得分:3)

使用find是一个好主意。您可以使用find和下一个语法来查找目录中的所有目录,并将脚本应用于找到的目录:

find /directory -type d -exec youscript.sh {} \;

-type d参数表示您只想查找目录

-exec youscript.sh {} \;为每个找到的目录启动脚本,并将此目录名称作为参数传递给

答案 1 :(得分:1)

使用find(1)获取文件列表,然后根据该列表执行任何操作。

相关问题