这个目录下的文件数量我惊呆了。40W+ 的文件目录数量,直接报错了。
ansible]# ls tmp/|wc -l 406278 .ansible]# time rm -rf ./tmp/* -bash: /bin/rm: Argument list too long real 0m7.728s user 0m4.686s sys 0m0.408s
如何解决呢?通过传参的方式解决 .
.ansible]# time find /home/.ansible/ -name "a*" | xargs rm -rf "a*"
如果太多可考虑先删除超过5天的
find /home/.ansible/ -name "*" -type f -mtime +5 -exec rm -f {} \;
然而速度是真的慢,如何快速删除呢?
使用rysnc
rsync --delete -v -d /home/.ansible/tmp_1/ /home/.ansible/tmp/
- /home/.ansible/tmp_1/ 空文件夹
- /home/.ansible/tmp/ 需要删除的文件夹
这种删除方式应该是最快的一种方式.
1. .ansible]# du -sh * 2. 4.0K deltmp.yml 3. 17M tmp 4. 4.0K tmp_1
参考: Linux下删除大量文件效率对比