我们这里采用time命令+创建文件命令来测试各个创建方法所用的时长,让大家看得一目了然。
方法1:使用 touch 命令和循环
timefori in{1..500000}; dotouchfile_ $i; done
或者
for((i= 1; i<= 500000; i++)); dotouchfile_ $i; done
命令执行结果如下图:
可以看出执行所需时长大概16分钟13秒左右。
方法2:使用 touch + xargs
timeseq1 500000 | xargs -I {} touchfile_{}
并行版本更快
seq1 500000 | xargs -P $( nproc) -I {} touchfile_{}
命令执行结果如下图:
可以看出执行所需时长大概9分钟4秒左右。
方法3:使用 printf + xargs
timeprintf'file_%s\n'{1..500000} | xargs touch
命令执行结果如下图:
可以看出执行所需时长大概15.2秒左右。
方法4:使用 Perl 或 Python 脚本
timeperl -e 'for(1..500000){open($fh,">","file_$_");close $fh}'
python脚本
python3 -c "import os; [open(f'file_{i}', 'w').close for i in range(1, 500001)]"
命令执行结果如下图:
可以看出执行所需时长大概15.4秒左右。
综上所述,可以看出对于创建50万文件,推荐使用 printf + xargs 方法,它通常是最快且最可靠的。当你完成目标并且考虑到效率了,你就可以甩开别人,成为那条街最靓的仔啦!