我如何确定什么占用了这么多空间?

syn*_*n4k 33 bash centos disk-space-utilization

我正在使用 df -h 打印出人类可读的磁盘使用情况。我想弄清楚是什么占用了这么多空间。例如,有没有办法通过管道传输此命令,以便它打印出大于 1GB 的文件?其他想法?

谢谢

eww*_*ite 38

您可能想尝试在以下位置ncdu找到的实用程序:http : //dev.yorhel.nl/ncdu

它将快速总结文件系统或目录树的内容并打印结果,按大小排序。这是一种以交互方式向下钻取并查看消耗驱动器空间的非常好的方式。

此外,它可能比某些du组合更快。

典型的输出如下所示:

ncdu 1.7 ~ Use the arrow keys to navigate, press ? for help                                                         
--- /data ----------------------------------------------------------------------------------------------------------
  163.3GiB [##########] /docimages                                                                                  
   84.4GiB [#####     ] /data
   82.0GiB [#####     ] /sldata
   56.2GiB [###       ] /prt
   40.1GiB [##        ] /slisam
   30.8GiB [#         ] /isam
   18.3GiB [#         ] /mail
   10.2GiB [          ] /export
    3.9GiB [          ] /edi   
    1.7GiB [          ] /io     
    1.2GiB [          ] /dmt
  896.7MiB [          ] /src
  821.5MiB [          ] /upload
  691.1MiB [          ] /client
  686.8MiB [          ] /cocoon
  542.5MiB [          ] /hist
  358.1MiB [          ] /savsrc
  228.9MiB [          ] /help
  108.1MiB [          ] /savbin
  101.2MiB [          ] /dm
   40.7MiB [          ] /download
Run Code Online (Sandbox Code Playgroud)


top*_*gon 27

我经常使用这个。

du -kscx *
Run Code Online (Sandbox Code Playgroud)

运行可能需要一段时间,但它会告诉您磁盘空间的使用位置。

  • 我对此使用了一个变体,我使用 h 标志而不是 k,这将为您提供与 df 类似的“人类可读”格式。 (3认同)
  • 优点是使用 `-k` 开关时,20MB(以千字节为单位)比 2GB(以千字节为单位)要小得多......更容易`| 排序-n` (2认同)

Chr*_*les 9

您可以使用 find 命令。例子:

find /home/ -size +1073700000c -print
Run Code Online (Sandbox Code Playgroud)

  • 较新版本的 GNU find 也支持 M(兆字节)作为修饰符。即`find /path -size +1024M` (2认同)

Hub*_*rio 7

我自己用

du -c --max-depth=4 /dir | 排序 -n

这将返回目录及其子目录使用的空间量,最多 4 层,sort -n将把最大的放在最后。

新版本sort可以处理“人类可读”的大小,因此可以使用更具可读性的

du -hc --max-depth=4 /dir | sort -h
Run Code Online (Sandbox Code Playgroud)