查找使用最多磁盘空间的文件

And*_*rew 57 linux ubuntu df

是否可以列出硬盘驱动器上最大的文件?我经常df -H用来显示我的磁盘使用情况,但这只会给出已满的百分比、剩余的 GB 等。

我进行了大量数据密集型计算,其中包含大量小文件和极少数非常大的文件。由于我使用的大部分磁盘空间都在极少数文件中,因此很难追踪这些大文件的位置。删除 1 kB 文件不会释放太多空间,但删除 100 GB 文件可以。有没有办法根据大小对硬盘驱动器上的文件进行排序?

谢谢。

jip*_*pie 67

使用标准可用工具:

要列出当前目录中前 10 个最大的文件: du . | sort -nr | head -n10

列出当前目录中最大的目录: du -s * | sort -nr | head -n10

更新这些天我通常使用更易读的形式(正如 Jay Chakra 在另一个答案中解释的那样,并省略| head -n10,只需让它滚动到屏幕外。最后一行具有最大的文件或目录(树)。

有时,例如。如果当前目录中有很多挂载点,而不是使用-x或 多个--exclude=PATTERN,将文件系统挂载到未使用的挂载点(通常 /mnt)并从那里工作会更方便。

请注意,在处理大型 (NFS) 卷时,du在大量(子)目录上运行时,可能会对存储后端(文件管理器)造成大量负载。在这种情况下,最好考虑设置quota音量。

  • 对于你的第一个选项,你不能用 `ls -Sl | 列出它们吗?头`? (3认同)

Jay*_*kra 49

添加到jippie的答案

以人类可读的格式列出当前目录中最大的目录:

du -sh * | sort -hr | head -n10

样本:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md
Run Code Online (Sandbox Code Playgroud)

它使阅读更方便:)


Ren*_*nan 15

试试看ncdu,因为它可以让您大致了解磁盘使用情况。从它的网站:

具有 ncurses 界面的磁盘使用分析器,旨在在远程服务器上运行,在该服务器上您没有完整的间隙设置,但必须使用简单的 SSH 连接。ncdu 的目标是快速、简单和易于使用,并且应该能够在安装了 ncurses 的任何最小的 POSIX 类环境中运行。