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

发布于 2021-11-25 21:30:31 字数 128 浏览 1004 评论 8

目录下有大量用户上传的照片,现在连 ls, du, find 都会卡住。。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

千纸鹤带着心事 2021-11-30 04:12:57

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结果是删除失败.

网名女生简单气质 2021-11-30 04:12:20

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

大量文件删除不要用rm,用
rsync --delete-before,这个命令非常快的说。

奢华的一滴泪 2021-11-30 04:08:04

如果你懂linux系统编程,直接通过ls读出那个文件夹的i节点,然后调用系统API直接干掉那个节点

成熟的代价 2021-11-30 04:08:04

还是win方便.

powershell 表示毫无压力..

梦里兽 2021-11-30 04:04:48

文件名有规律的话,写脚本或者程序具体指定到单个文件,进行循环的方式删除

苍暮颜 2021-11-29 22:56:49

文件名多长,删多少次,就可以删完了.

柠檬 2021-11-29 04:51:29

分目录

悟红尘 2021-11-28 13:10:10

大量文件删除不要用rm,用
rsync --delete-before,这个命令非常快的说。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文