将文件夹中的所有文件重命名为连续数字

Ada*_*dam 6 command-line rename

我想重命名文件夹中的所有文件,以便有连续的数字。例如:

1.png
2.png
3.png
etc
Run Code Online (Sandbox Code Playgroud)

我知道有重命名命令,我知道这里有几十个类似的问题,但我找不到方法。

注意:建议的副本不包含特定于我的案例的解决方案。请停止将此标记为重复,因为建议的重复不能回答我的问题

hee*_*ayl 9

假设您想在排序文件时遵循 shell globbing 顺序,您可以执行以下操作:

#!/bin/bash
counter=0
for file in *; do 
    [[ -f $file ]] && echo mv -i "$file" $((counter+1)).png && ((counter++))
done
Run Code Online (Sandbox Code Playgroud)

这里循环遍历当前目录下的所有文件,并根据顺序依次重命名,如果只想处理.png文件,请for file in *.png改用。counter变量将跟踪增量。

这是一个试运行,删除echo以让实际的重命名操作发生。

例子:

$ counter=0; for file in *; do [[ -f $file ]] && echo mv -i "$file" $((counter+1)).png && ((counter++)); done
mv -i file.txt 1.png
mv -i foo.sh 2.png
mv -i bar.txt 3.png
Run Code Online (Sandbox Code Playgroud)