如何找到所有文件的位置?

如何找到所有文件的位置?

我有一个相当大的目录树,其内容我不熟悉,并且我有理由相信那里埋藏着一些非常大的目录。我如何找到他们在哪里?

语境:我正在清理一个多年来留下大量文件的网络应用程序。我已经找到并清除了一个包含数十万个微小的古老“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并按降序排列此数字

相关内容