使用命令行重命名一堆文件

使用命令行重命名一堆文件

假设我有一个文件夹,里面有数千张照片,这些照片的命名都是随机的。如何从命令行/终端将它们重命名为 photo1、photo2、...、photo1000?

答案1

我假设您想在文件名上保留适当的后缀:

c=1; for f in *.jpg ; do mv "$f" "photo$c.jpg" ; c=$(($c+1)) ; done

笔记

  • c=1:这将初始化计数器。您可以将其设置为任意数字。

  • for f in *.jpg ; do:这表示 shell 循环的开始for。虽然当文件名可能包含空格、换行符或其他难处理的字符时,许多 shell 脚本可能难以运行,但这种构造即使是对付最棘手的文件名也是安全的。

  • mv "$f" "photo$c.jpg":这将使用计数器c并执行文件的实际重命名。文件名$f用双引号引起来,以防止名称受到各种可能的 shell 扩展的影响。

  • c=$(($c+1)):这将增加下一个循环的计数器

  • done:表示循环结束for

答案2

您可以使用此代码:

for i in *.jpg; do let j+=1 ; mv "$i" "photo$j.jpg" ; done

相关内容