我的问题是,我有一个包含许多不同文件的文件夹,例如:
xxxxxxxxx.avi yyyyyyy.jpg zzz.txt
我想将它们重命名为
001.avi 002.jpg 003.txt
它不适用于thunar rename
,因为文件名的长度并不完全相同。
或许可以rename 's/.*......
,但我有点卡住了......
感谢您的任何建议
答案1
如果你习惯使用命令行解决方案,那么你可以在 bash 中执行如下操作
i=1
for file in *.*; do
printf -v newfile "%03d.%s" $((i++)) ${file##*.}
echo mv -v -- "$file" "$newfile"
done
这echo
将阻止它实际进行任何更改(它只会输出它将要进行的命令列表) -一旦您确信它将执行您想要的操作,mv
您就可以通过运行相同的命令来进行更改。echo
答案2
答案3
找到了另一个相当简短的解决方案:
n=0; for f in * ; do mv "$f" "$n.${f/*./}"; n=$((n+1)); done