将文件夹中的所有文件重命名为编号列表1.jpg 2.jpg

时间:2013-09-08 17:53:55

标签: linux command-line

我有一个带有几个不同随机文件名的图像的文件夹,以帮助组织我想要的这个混乱,在一个命令中将所有这些重命名为顺序,所以如果我有100个文件,它开始命名第一个文件file-1.jpg file-2.jpg等。这可以在一个命令中使用吗?

2 个答案:

答案 0 :(得分:46)

我能想到的最简洁的命令行是

ls | cat -n | while read n f; do mv "$f" "file-$n.jpg"; done

ls列出当前目录中的文件,cat -n添加行号。 while循环逐行读取生成的编号文件列表,将行号存储在变量n中,将文件名存储在变量f中并执行重命名。

答案 1 :(得分:9)

我能够通过编写bash脚本来解决我的问题

#!/bin/sh
num=1
for file in *.jpg; do
       mv "$file" "$(printf "%u" $num).jpg"
       let num=$num+1
done