批量重命名文件

泰勒·兹卡(Tyler Zika)

我有多个名称格式不一致的照片文件。

  • 北部海滩.JPG
  • 南海滩sm.jpg
  • 布莱斯帆板sm.jpg
  • DSC01031 1024x.jpg
  • DSC02652 ed sm.jpg
  • DSC03229 sm.jpg
  • 皮艇的孩子2.jpg
  • 毛伊岛5-05(31)1024.jpg
  • 毛伊岛秋季05(41)sm.jpg
  • 毛伊岛的鲸鱼(2)sm.jpg
  • 毛伊岛的鲸(6)ed.jpg
  • P1000018 sm.jpg
  • P1000030 sm.jpg
  • P1000056 sm.jpg
  • P1000148 sm.jpg
  • P1000397 sm.jpg
  • P1000490 sm.jpg
  • P1000629 sm.jpg
  • P1000995 sm.jpg
  • P1010006 1024.jpg
  • P1010089 1024x.jpg
  • P1050988 ed sm.jpg

我不想重命名扩展名,而是将列表中的第一个.jpg重命名为1.jpg,第二个2.jpg,第三个3.jpg等。如何使用一个命令执行此操作?

迈克尔·荷马

只需在shell中使用循环即可:

for x in * ; do mv -- "$x" "$((i=i+1)).jpg" ; done

我们一次查看一次当前目录中的每个文件,将其称为x,然后将其移至$i.jpg,我们$i每次将其递增一。$((...))算术扩展,赋值返回分配的值,因此i每次都修改并返回新的数字。

如果要多次执行此操作(例如在其他目录中),则需要在两个目录之间重置计数器:只需说一下i=0,或将其放在i=0;命令的开头即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章