linux上删除文件过慢,Linux上删除大量文件几种方式对比

Linux上删除大量文件几种方式对比

linux上删除大量小文件删除测试:删除500000个小文件测试

生成文件:

$ for i in $(seq 500000);do echo 'text' >hello/$i.txt;done

$ du -sh hello

2.0Ghello

1. rm删除:因为文件数量太多,rm无法删除(报错)

$ time rm -f *

-bash: /usr/bin/rm: Argument list too long

real0m2.676s

user0m2.340s

sys0m0.272s

2. find查找删除:-exec

-exec: 该参数是将查找的结果文件名,逐个传递给后面的命令执行,如果文件较多,会导致效率较低。

xargs: 该命令是将查找的结果一次性传给后面的命令执行,效率比较高。但是不能操作文件名有特殊字符的文件。

$ time find . -type f -exec rm {} \;

real7m16.154s

user0m51.171s

sys5m51.214s

3. find查找删除:xargs

$ time find . -type f|xargs rm -rf

real0m17.860s

user0m1.021s

sys0m8.838s

4. find调用-delete删除

$ time find . -type f -delete

real0m16.953s

user0m0.535s

你可能感兴趣的:(linux上删除文件过慢)