我有一个相当大的目录树,其内容我不熟悉,并且我有理由相信那里埋藏着一些非常大的目录。我如何找到他们在哪里?
语境:我正在清理一个多年来留下大量文件的网络应用程序。我已经找到并清除了一个包含数十万个微小的古老“session.*”文件的目录,但find
层次结构上的命令仍然非常慢。
这棵树足够大,这ls -RC | less
不是一个有吸引力的解决方案。如果我正在寻找一个占用大量磁盘空间的目录,我会使用du -s *
.如何找到包含最多文件的目录?
编辑:这是在旧服务器上,所以我无法用来du --inodes
计算文件数。对于大多数读者来说,这可能是最好的解决方案。
答案1
du --inodes *
曼杜:
--inodes list inode usage information instead of block usage
答案2
在没有 的旧发行版上du --inodes
,
find . -type d -ls | sort -n -k7,7
将按大小递增的顺序列出所有目录,因此您将在列表末尾获得包含最多文件的目录(或在某个时刻包含最多文件的目录)。该find
命令可能需要一段时间才能运行,但对此无能为力 - 即使采用分而治之的du
方法也必须从磁盘读取相同数量的信息。
答案3
您可以使用
du --inodes * |sort -nr
du --inodes *
将按目录给出文件数,sort -nr
并按降序排列此数字