Linux 下目录中文件太多无法删除问题的解决办法

今天老王遇到了一个问题,一台 Linux 服务器上,某个目录中,rm 和 ls 命令全部没有反应,既不能显示这个目录中有多少文件,也不能直接删除文件,检查了服务器正常,磁盘容量也足够。本文分享下解决方法和解决过程。

一、问题原因

如果你 Linux 服务器功能正常,在其他目录也能正常 rmls,单独只有这一个文件夹有这个问题,那么导致这个问题的原因多半是因为目录中文件太多了,在网上搜了下,如果目录中文件数量超过 10000,那么就不能使用 rm -rf * 来删除了,会返回 Argument list too long 的错误。

二、解决方法

解决方法一、

一般来说配合 ls 来执行 rm 命令就能解决大部分因文件太多而无法删除的问题了,命令如下:

ls |xargs rm -r

但是老王这个情况是连 ls 命令都没有响应,所以有了解决方法二。

解决方法二、

先放方法:

find . > tmpfile , 
#删除tmpfile中第一行.   然后:
cat tmpfile | xargs rm -f

老王的整个解决过程如下图所示,先生成了 tmpfile,然后用 wc 命令看了下总共有多少文件,不看不知道,一看吓一跳,10000 个文件就不能用 rm 删除了,我这个目录下居然有 240 万个文件,然后用第二个命令开始删除,删了 5 分钟都没有反应,所以手动停了(ctrl + c),又生成了一个 tmpfile1 文件,看了下还有 140 万个文件,之后继续删 5 分钟就成功把所有文件都删除了。

Linux 下目录中文件太多无法删除

赞(0)
关注我们
未经允许不得转载:老王博客 » Linux 下目录中文件太多无法删除问题的解决办法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址