我需要重命名目录中的所有图像文件,并将其命名为它们所在的文件夹的名称...使用 Bash 脚本可以实现吗?
我还需要对它们进行连续编号(0001.jpg、0002.jpg、0003.jpg 等)。我遇到的问题是数字之间有一些跳跃......(0018.jpg、0019.jpg、0025.jpg、0026.jpg 等)我想将 0025.jpg 重命名为 0020.jpg,将 0026.jpg 重命名为 0021.jpg 等......
答案1
是的,这是可能的。您可以使用find /search/path -type d
查找所有目录并使用 -exec 选项以目录路径作为参数执行某些操作。并且您可以运行 bash 脚本NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done;
或类似这样的脚本
答案2
要使用此命令,您必须位于 .jpg 文件所在的目录中,或者您必须稍微自定义该命令。
let a=0; for i in *.jpg; do let a=a+1; b=`basename $PWD`; c=`printf %04d$b.jpg $a`; mv $i $c; done
输出将如下所示:
0001<dirname>.jpg