按特定顺序重命名图像

按特定顺序重命名图像

这是我的问题:我有一个包含 500 张图片的文件夹,名为:

1.jpg
2.jpg
3.jpg

等等..

我复制了该文件夹,现在我需要将相同的图片从 501 重命名为 1000,但顺序如下:

1.jpg  becomes    501.jpg
2.jpg  becomes    502.jpg
3.jpg  becomes    503.jpg          
....

当我使用标准重命名命令时:

i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg  && echo $i && ((i++)); done

它按 501 到 1000 的顺序排列图像,但它们都很分散:

23.jpg becomes 501.jpg,    
66.jpg becomes 502.jpg 
...   

(它们的顺序是正确的,但是它们混淆了)

我知道这可能是我遗漏的一个命令......

答案1

find命令按“目录”顺序查找文件(23.jpg,,66.jpg...)。您可以|sort在查找后面放置一个。

但是你的方法过于复杂。

for i in $( seq 1 500 ) ; do
    j=$(( $i + 500 ))
    mv $i.jpg $j.jpg
done 

答案2

带着rename命令。

rename -n 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg

或者在纯净中bash使用shell 参数扩展

for FILE in *.jpg; do
    mv "$FILE" "$(( ${FILE%.jpg}+500 )).jpg" 
done 

答案3

尝试图纳尔,这是 Xfce 的默认文件管理器。它非常轻量,并附带一个方便的批量重命名工具。您可以通过在终端中运行以下命令来安装 Thunar:

sudo apt-get install thunar

您也许也可以从 Ubuntu 软件进行安装。

如何使用该实用程序

  1. 安装 Thunar 后,启动批量重命名公用事业。
  2. 点击+图标并按适当的顺序添加要重命名的文件。
  3. 单击所选文件列表下方的下拉框并选择编号。点击旁边的框并选择仅限姓名
  4. 在里面 ”从...开始:“框输入501,离开”文本:“框为空。您应该在新名字柱子。
  5. 要应用更改,请点击重命名文件按钮。

除了编号此实用程序支持以下操作:

  • 插入日期/时间
  • 插入/覆盖
  • 删除字符
  • 搜索和替换
  • 大写小写

答案4

另一种方法是使用 shell 命令

count=1;for i in ls; do mv $i CN$((count++)).${i##*.}; 完成

相关内容