假设我有一个文件夹,里面有成千上万张随机命名的照片。如何从命令行/终端将它们重命名为 photo1、photo2、...、photo1000?
Joh*_*024 11
我假设您想在文件名上保留正确的后缀:
c=1; for f in *.jpg ; do mv "$f" "photo$c.jpg" ; c=$(($c+1)) ; done
Run Code Online (Sandbox Code Playgroud)
c=1: 这将初始化计数器。您可以将其设置为您喜欢的任何数字。
for f in *.jpg ; do: 这表示 shellfor循环的开始。虽然当文件名可以包含空格、换行符或其他困难字符时,许多 shell 脚本可能难以工作,但这种构造即使是最敌对的文件名也是安全的。
mv "$f" "photo$c.jpg":这使用计数器c并实际重命名文件。文件名$f用双引号引起来,以保护名称不受各种可能的 shell 扩展的影响。
c=$(($c+1)):这会增加下一个循环的计数器
done: 表示for循环结束。