在当前目录下新建文件名为test(假设),输入如下内容:
#/bin/bash
a=1
for i in `ls *.jpg -t`;do
new=$(printf "%03d.jpg" ${a})
mv ${i} ${new}
let a=a+1
done
注:添加x(执行权限)后运行
new=$(printf "%03d.jpg" ${a})--这个为关键03表示增加长度为3位
ls -t就是按时间排序,如果你想用文件的修改时间来命名文件的话,可以这样,在目录下执行:
for i in *;do mv $i `LANG=C stat $i | grep -i Modify | awk -F. '{print $1}' | awk '{print $2$3}'| awk -F- '{print $1$2$3}' | awk -F: '{print $1$2$3}' `;done
修改后的文件名是这样的20130321064702。