用 Shell 脚本重命名文件夹中所有的文件,根据文件的修改时间排序,将文件名改为从 001
开始的数字。根据使用shell脚本批量检查pcap文件头并修改文件扩展名中写的脚本修改而来。
rename.sh :1
2
3
4
5
6
7
8
9
10
11
12
13
14
15!/bin/bash
Raname file to numbers by file modification time.
Arg: dir path where files at.
dir=$1
cd $dir
file_num=$(ls -l | wc -l);
echo $file_num
cnt=1
for file in *;
do
echo $file
ext=$(ls "$file" | cut -d. -f2)
mv "$file" $(printf "%03d" $cnt).$ext
cnt=`expr $cnt + 1`
done
用法:1
rename.sh dir1
dir1 是需要批量重命名的文件所在的文件夹路径。
2021/02/16 fix:不能处理含空格的文件名。
1 | -for file in `ls -rt`; |
`ls -rt` 会被文件名的空格分割, * 则不会。
1 | do |
移除无用代码。
1 | - ext=$(ls $file | cut -d. -f2) |
被 ""
包裹的文件名中即使含空格也不需要转义。