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