10

我有一个充满图像的文件夹,其中包含几个不同的随机文件名来帮助组织我想要的混乱,在一个命令中将它们全部重命名为顺序,所以如果我有 100 个文件,它开始命名第一个文件file-1.jpg file-2.jpg等。是这可能在一个命令中?

4

2 回答 2

61

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

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

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

于 2013-09-08T18:30:02.393 回答
7

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

#!/bin/sh
num=1
for file in *.jpg; do
       mv "$file" "$(printf "%u" $num).jpg"
       let num=$num+1
done
于 2013-09-08T18:13:13.070 回答