我想将目录中的文件重命名为序列号。基于文件的创建日期。
例如,sadf.jpg到0001.jpg,wrjr3.jpg到0002.jpg等等,前导零的数量取决于文件的总量(如果不需要,则不需要额外的零)。
发布于 2010-07-09 18:18:16
尝试使用循环、let和printf作为填充:
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" "$a") #04 pad to length of 4
mv -i -- "$i" "$new"
let a=a+1
done使用-i标志可防止自动覆盖现有文件,使用--可防止mv将带有破折号的文件名解释为选项。
发布于 2015-12-08 18:20:09
一句话中的美:
ls -v | cat -n | while read n f; do mv -n "$f" "$n.ext"; done 您可以使用.png、.jpg等更改.ext。
发布于 2016-06-15 13:17:49
一个非常简单的bash one liner,它保留了原来的扩展名,添加了前导零,并且也可以在OSX中工作:
num=0; for i in *; do mv "$i" "$(printf '%04d' $num).${i#*.}"; ((num++)); donehttp://ubuntuforums.org/showthread.php?t=1355021的简化版本
https://stackoverflow.com/questions/3211595
复制相似问题