检查Linux系统上的空间分配情况

我知道如何检查剩余的空间:
df -h

我知道如何检查文件夹的空间:

du -ch /path/to/folder/

但假设我有一个500 GB的硬盘,已使用了350GB:

  • 哪个是最好的工具/命令来获取空间分配情况?

  • 我应该执行du -ch /吗?(我认为这不是最佳选择)

  • 有没有特殊的工具/应用程序可以做到这一点?

我想要一个能够存储系统中空间分布情况的应用程序,每个文件夹占用了多少空间...

我想要类似于SpaceSniffer的东西(你可以在这里查看Windows工具here)。这是一个Windows程序,它检查你的硬盘,并以简单而美观的界面显示计算机上空间的分布情况。

这种软件非常棒,当你检查你的硬盘时,发现你“丢失”了几百GB的空间,但不知道它们在哪里!


编辑

  • 我已经尝试过baobab,在我的Ubuntu机器上运行/工作得非常完美,我还测试了JDiskReport,在这里我需要解决一些问题,但它在UbuntuWindows上都可以工作。

  • 我假设JDiskReport将在安装了Java的任何操作系统上工作,这就是为什么我选择它作为正确答案。我在Ubuntu、Windows 8、Raspbian和CentOS上都尝试过,并且在所有这些系统中都可以工作(您需要安装Java)。

  • 对于那些命令行爱好者,我必须说你们的选择应该是ncdu,它太棒了!

Baobab界面:

This is the baobab IU


2你是指[https://apps.ubuntu.com/cat/applications/baobab/](磁盘使用分析器)(baobab)吗? - ignis
没错!我在问完问题后就看到了,正在核实中。谢谢! - AlvaroAV
在Windows中,你也可以使用windirstat - Fjor
8个回答

一个不错的 Gnome 应用程序是 baobab。它随着 Ubuntu 的默认安装一起提供。

enter image description here

要获取它,
sudo apt-get install baobab
apt-cache show baobab

Description-en: GNOME disk usage analyzer
 Disk Usage Analyzer is a graphical, menu-driven application to analyse
 disk usage in a GNOME environment. It can easily scan either the whole
 filesystem tree, or a specific user-requested directory branch (local or
 remote).
 .
 It also auto-detects in real-time any changes made to your home
 directory as far as any mounted/unmounted device. Disk Usage Analyzer
 also provides a full graphical treemap window for each selected folder.

3这个是安装在我的Ubuntu 14.04上的,我之前不知道。 - AlvaroAV
是的。这是一个标准的Ubuntu程序,安装在全新的系统上。 - Dan Johansen
如果他们把名字改成更加引人注目的,或者将其整合到系统(设置)实用程序中,会有更多人发现它。 - Quazi Irfan

ncdu

如果你使用命令行,你可以使用ncdu。它使用命令行图形界面(ncurses)。

安装

sudo apt-get install ncdu

描述

从它的网页上:

[...] ncdu:一个带有ncurses界面的磁盘使用分析工具,旨在运行在远程服务器上,您在那里没有完整的图形设置,但只能使用简单的SSH连接。ncdu旨在快速、简单和易于使用,并且应该能够在任何安装了ncurses的最小POSIX类似环境中运行。

截图

Screenshot from the ncdu webpage

示例

查看您的主目录磁盘使用情况:

ncdu ~

您可以在工具内部进入子目录并删除文件/整个文件夹。

1太棒了!我刚试了一下,完美无缺。 - AlvaroAV
我习惯了功能强大的Baobab,但是拥有一个命令行工具真的是一个很好的选择 :) 谢谢。 - daks

另一个非常有用的应用程序是: JDiskReport 它与Windows的SpaceSniffer非常相似,并且具有非常实用和直观的用户界面。
您需要Java才能使用它,但它可以在安装了Java的任何操作系统上运行。
用户界面:

JDiskReport example in linux

希望能有所帮助!

这听起来很不错,而且很接近SpaceSniffer!谢谢! - AlvaroAV

使用这些鸭子:
du -cks *|sort -rn|head -n11

这将列出当前路径中使用空间的前十个子目录和文件以及总计。如果您将-cks更改为-cms,它将以MB而不是KB报告,这在今天可能更有用。如果需要,您可以在du选项中添加x以防止其进入其他文件系统。(来源:《Linux服务器黑客技巧》, O'Reilly)

1我使用dush命令来显示人类可读的文件大小:du -sh | sort -h - yuric
@YuriC 太棒了。我忘记了使用-h选项进行排序。 - Nagora

有点晚了,但是房间里的大象不见了!
gparted 是我选择的应用程序,用来显示整个系统中磁盘空间的分布。
即使对于一个在升级到 Ubuntu 之前的 Windows 系统,如下所示:

Screenshot of user prior to moving to Ubuntu


还有一个可在软件仓库中找到的kde应用程序:Filelight 您可以使用sudo apt-get install filelight命令进行安装。
NAME

       filelight - Graphical disk-usage information

SYNOPSIS

       filelight [Qt-options] [KDE-options] [path]

DESCRIPTION

       Allows you to exactly understand exactly your disk usage by graphically
       representating your filesystem as a set of concentric  segmented-rings.

截图:- 截图

另一个选项是具有简单易懂界面的应用程序:
1. xdiskusage(sudo apt-get install xdiskusage) 安装后,从终端调用它 - xdiskusage 2. KDirStat(sudo apt-get install kdirstat)
此应用程序主要适用于KDE。
3. Gd map(sudo apt-get install gdmap) Gnome下的KdirsStat替代品。
此外,此链接提供了更多应用程序:http://www.makeuseof.com/tag/how-to-analyze-your-disk-usage-pattern-in-linux/

如果你想使用已安装的工具,你可以使用du -sh /*命令来显示每个文件夹(和文件)在/目录下的累积使用情况。然后你可以继续对子文件夹执行此操作,直到找到你要查找的内容。 当然,其他答案中提到的工具更加方便,但有时候你无法轻松安装它们。

我问这个问题是因为在使用路径“/”时,du命令似乎不是最佳选择。它耗时太长,而且不如其他工具直观。不管怎样,还是谢谢! - AlvaroAV
1如果你运行 du -s /* 命令,它不应该比其他工具花费更长的时间! - Josef
我会检查一下的! - AlvaroAV