为什么find ... -delete
比rm -rf
快得多?具体来说,
澄清:我特别问:为什么find ./x -type d -delete && rm -rf x
比rm -rf x/
快得多?
有一些人使用类似的机制,比如rsync。
有几篇帖子说明rm -rf
为何缓慢。例如,https://unix.stackexchange.com/questions/106133/why-is-rm-slow可能是最集中的一个。
具体来说,我发现cd dir-to-delete && find . -type d -delete
后跟rm -rf dir-to-delete
非常快,即使在大型目录上也是如此。
答案 0 :(得分:1)
rm -f
并不慢,但是如果你运行它很多文件并且每个rm
启动一个单独的进程,那么它会很慢,因为启动一个进程会花费你在现代处理器上大约2ms,如果您批量删除,那么可以删除许多文件,这就是查找-delete
所做的事情。或者,您可以使用xargs
批量运行rm
,效果非常相似。