Linux 删除海量文件 rm -f 会卡死怎么破?

Qulc 发布于 2015/01/07 10:11
阅读 2K+
收藏 2
目录下有大量用户上传的照片,现在连 ls, du, find 都会卡住。。。
加载中
1
LoveCupid
LoveCupid
大量文件删除不要用rm,用 rsync --delete-before,这个命令非常快的说。
0
0
wx---每日佳选
wx---每日佳选
文件名多长,删多少次,就可以删完了.
0
瓦盆洗手
文件名有规律的话,写脚本或者程序具体指定到单个文件,进行循环的方式删除
0
Flygend
Flygend
如果你懂linux系统编程,直接通过ls读出那个文件夹的i节点,然后调用系统API直接干掉那个节点
0
Tuesday
Tuesday

还是win方便.

powershell 表示毫无压力..

0
铂金胖子
铂金胖子

引用来自“田左俭”的评论

大量文件删除不要用rm,用 rsync --delete-before,这个命令非常快的说。
+1 
0
eechen
eechen
http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux
删除50万个文件,各种方法的速度对比:

先创建50万个文件:
for i in $(seq 1 500000); do echo testing >> $i.txt; done

各种删除当前目录文件方法,先进入该目录(比如PHP的sessions目录),然后执行以下命令:
time rm -f * 删除失败,返回 /bin/rm: Argument list too long
time find ./ -type f -exec rm {} \;
time find ./ -type f -delete
time rsync -a --delete EmptyDir/ BigDir/
time perl -e 'for(<*>){((stat)[9]<(unlink))}'

结果:
perl用了1分钟
rsync用了3分钟
find with -delete用了5分钟
find with -exec用了14分钟
直接用rm结果是删除失败.
返回顶部
顶部