大家好,我是浩道,最近在对实习生考核测试中发现,关于运维效率提升方面的仍有待改进。一个比较典型的问题:Linux下如何创建500000+个文件?发现它们多数给的方案,都是实现目标结果就行!作为运维工程师,这远远不够的,我们得考虑创建效率,下边就针对这个问题一起看看都有哪些更快的创建方案呢!我们这里采用time命令+创建文件命令来测试各个创建方法所用的时长,让大家看得一目了然。time for i in {1..500000}; do touch file_$i; done
for ((i=1; i<=500000; i++)); do touch file_$i; done
time seq 1 500000 | xargs -I {} touch file_{}
seq 1 500000 | xargs -P $(nproc) -I {} touch file_{}
time printf 'file_%s\n' {1..500000} | xargs touch
time perl -e 'for(1..500000){open($fh,">","file_$_");close $fh}'
python3 -c "import os; [open(f'file_{i}', 'w').close() for i in range(1, 500001)]"
综上所述,可以看出对于创建50万文件,推荐使用 printf + xargs 方法,它通常是最快且最可靠的。当你完成目标并且考虑到效率了,你就可以甩开别人,成为那条街最靓的仔啦!