我有一个包含多个名称随机的图像文件的文件夹,为了整理这个混乱的文件夹,我想用一个命令将它们全部重命名为连续的顺序,所以如果我有100个文件,它会从第一个文件开始以file-1.jpg
file-2.jpg
等方式命名。有没有可能用一个命令完成这个操作?
我有一个包含多个名称随机的图像文件的文件夹,为了整理这个混乱的文件夹,我想用一个命令将它们全部重命名为连续的顺序,所以如果我有100个文件,它会从第一个文件开始以file-1.jpg
file-2.jpg
等方式命名。有没有可能用一个命令完成这个操作?
我能够想到的最简洁的命令行是
ls | cat -n | while read n f; do mv "$f" "file-$n.jpg"; done
ls
列出当前目录下的文件,cat -n
添加行号。 while
循环按行读取结果编号的文件列表,将行号存储在变量n
中,将文件名存储在变量f
中,并执行重命名操作。
我通过编写一个bash脚本成功解决了我的问题。
#!/bin/sh
num=1
for file in *.jpg; do
mv "$file" "$(printf "%u" $num).jpg"
let num=$num+1
done
let
。这让我浪费了 2 小时的工作时间。正确的应该是 #!/bin/bash
。 - CBeTJlu4ok