如何查找我的硬盘上的可用空间量?

有没有一种快速检查Ubuntu中的可用/已使用磁盘空间的方法?
我会认为你可以在文件浏览器中右键点击“文件系统”,然后选择“属性”或其他选项,但实际上并没有这样的选项。
18个回答

从Dash打开“系统监视器”,然后选择“文件系统”选项卡。

enter image description here

或者你也可以打开终端并输入以下命令:
df -h

8谢谢!给我找到了我需要的东西。但是有点遗憾的是,没有直观的方法来检查硬盘使用情况。我想大多数人都会因为试图弄清楚而感到沮丧。 - greg
8嗯,每次你在Nautilus中打开一个文件夹时,底部会显示设备上剩余多少空间。 - Elvis Stressborg
4@greg:实际上,这并不像你想的那样简单,因为UNIX挂载文件系统的方式意味着任何文件夹的内容都有可能存在于不同的磁盘或分区上。因此,任何检查可用空间的方法都必须明确考虑到这一点。 - Scott Severance
105df -h --total - nutty about natty
9df 用于显示以字节为单位的已用和可用空间,df -m 用于以1MB为单位显示空间,df -h 用于显示最大可用单位。无论使用哪种方式,您都将获得使用百分比,它在以上所有情况下保持不变。 - Fr0zenFyr
使用免费命令来查看磁盘空间的可用性怎么样? ;) ?? - Yuvaraj V
1更快的打开方式:直接从命令行输入$> mate-system-monitor$> gnome-system-monitor - Frank N
2只显示总计和标题的命令是 df --total -h | grep -e total -e Filesystem。但是如果你有多个驱动器,它可能不会单独显示它们。请尝试使用 df --help 获取更多信息。 - J-ho

你可以使用"baobab"或类似的工具,如"kdirstat"或"filelight",来查看哪些文件占用了你的磁盘空间。
在Ubuntu上,"baobab"也被称为"Disk Usage Analyzer"。
以下是"baobab"的示例截图:

baobab

以下是filelight的示例截图:

filelight

对于命令行选项,我更喜欢使用ncdu

ncdu

你可以进入子文件夹以获取子文件夹的总相对磁盘使用情况。一直都是这样的。比在远程机器上使用du -sh更方便。

49直到现在才意识到ncdu。非常有用的程序。我从使用du -sk * | sort -n转为使用ncdu。虽然我喜欢能够在终端中发出一些方便的命令,甚至可以将它们制作成别名,但没有重新发明轮子的意义。 - Tass
现在已经启用了,不过只支持v1.8版本 :( - Jamie Hutber
16ncdu 是一个很棒的工具,非常快速,非常出色。 - Boinst
1kdirstat被重新制作为QDirStat,它非常快速,是一个出色的图形化驱动器/(递归)文件夹使用情况表示。 - phil294
ncdu是一个很棒的工具。我们团队使用它来查找最高的用户/占用资源者。 - Viet
11我建议在使用ncdu时,加上-x开关,这样它就不会尝试计算磁盘空间中挂载的设备。ncdu -x /可以显示从根目录/开始的内容。 - Terrance
正是我在寻找的东西! - JohnyTex
ncdu 是最好的。快速、易于使用。我希望它能成为一个更为广为人知的命令。 - Lukas Liesis
这应该是一个适用于每个人的示例答案 - GUI 解决方案作为主要选择,可用的终端解决方案作为备选方案(而不仅仅是一些奇怪的 grep-fruits)。 - jave.web
确实,ncdu很厉害!这绝对应该是最佳答案! - Hikari
2这里是ncdu的man页面。 - Pathros

如果像我一样,你只需要知道磁盘空间的总使用量,那么只需使用以下命令即可。
df -h --total

这是一个示例输出,在结尾处显示总数。
Filesystem      Size  Used Avail Use% Mounted on
udev            478M     0  478M   0% /dev
tmpfs           100M  4.5M   95M   5% /run
/dev/vda1        20G  3.3G   16G  18% /
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/0
total            22G  3.3G   17G  17% -

我写了一篇关于它的帖子:如何使用命令行查找硬盘上的可用空间量?

df -h --total | command grep total | df -h --total | command grep total | head -c-3 && echo '' 只会显示 total 行。 - alper

gnome-system-monitor 或者 df -h 或者 lsblk

其他有用的工具是 baobab


1同意用户606723的观点。很酷的实用程序,鲍勃 :) - Dhaval
8lsblk命令列出了每个分区的大小,而不是空闲空间。 - Franck Dernoncourt

免费/已使用的磁盘空间总是与分区相关联。

首先,您需要决定您感兴趣的分区。

root@pc:~# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda1               28G   26G  643M  98% /
none                   4.0K     0  4.0K   0% /sys/fs/cgroup
udev                   3.9G  4.0K  3.9G   1% /dev
tmpfs                  790M  1.5M  789M   1% /run
/dev/sda6              887G  685G  158G  82% /home

就我的情况而言,我对“/”感兴趣,因为它使用了98%。换句话说,它几乎满了。

现在我使用这个命令来查看哪些文件和目录包含最多字节:

root@pc:~# du -ax / | sort -rn > /var/tmp/du-root-$(date --iso).log

上述命令可能需要一些时间。如果你真的很倒霉,结果会太大而无法放入/var/tmp目录中。那么你就需要选择其他目标位置。也许是一个临时挂载的USB存储设备。

以下是我结果的前几行:

root@pc:~# less /var/tmp/du-root-$(date --iso).log
26692380        /
9875188 /usr
8931652 /var
4057324 /var/log
4038176 /var/log/bootchart
3784016 /usr/share
2934248 /lib
2799204 /usr/lib
2785176 /lib/modules
2617048 /var/lib
2141124 /usr/src
1834444 /var/lib/docker
1817372 /var/lib/docker/aufs
1817076 /var/lib/docker/aufs/diff
1769612 /localhome
1338484 /tmp

为什么/var/log/bootchart这么大?……那是另一个问题……

有几种方法可以做到这一点。
  • 在Nautilus的“视图”菜单中启用状态栏。这将在所有Nautilus窗口底部放置一个条,告诉您可用空间。

  • 使用文件系统系统监视器查看所有磁盘及其可用空间的列表。

  • 使用磁盘使用分析器获取系统上所有目录及其占用的可用空间的列表。

  • 在Nautilus中打开任何文件夹,右键单击背景。打开属性窗口以检查可用空间。

  • 运行命令df -h


磁盘使用分析器就是我需要的,它可以简单地按驱动器分类显示每个驱动器的使用情况(已用/总共),而不是一堆在同一驱动器上的目录。 - Sina Madani

整个网络上都有大量的df信息,但我喜欢简单易读的输出。
如果你运行
df -h --total

输出中的底线将准确显示您系统中剩余的数量,以及已使用的数量等。

另一个选择是使用

df -h --total | grep total

这将在一行中显示:

  • (1) 总空间
  • (2) 已使用空间
  • (3) 尚可用空间
  • (4) 驱动器使用百分比

所有数据以千兆字节为单位。

我将这映射到一个 shell 命令 dspace,当我在终端输入该命令时,它立即显示我的磁盘空间使用情况。

您甚至可以编写一些小的 shell 命令来监控并在磁盘空间过低时发出警报等。


另一种方法!在Nautilus(文件浏览器)中,右键单击计算机并点击属性。它会显示硬盘上的可用空间和已使用空间。

有没有一个命令可以用来做这个? - Trevor Hickey

我为此编写了一个小技巧,有命令行和图形界面版本。它是硬编码的,可能需要一些调整。另外,图形界面版本似乎使用了一种比例字体,导致显示输出的对齐出现问题。这些脚本可以放在你的路径中的某个位置(比如$HOME/bin),并且你可以在桌面或面板上为图形界面脚本创建一个图标。
#!/bin/bash
## jdf - Copyleft 04/25/2009 - JPmicrosystems - GPL
## Free space on disk
## Custom df output
## Human readable (-h)
## sorted by file system name

## Make a temporary file and put the following awk program in it
AWK=$(/bin/mktemp -q /tmp/jdf.XXXXXX)

## PROG is quoted to prevent all shell expansions
## in the awk program
cat <<'PROG' > ${AWK}
## Won't work if mount points are longer than 21 characters

BEGIN {
  ## Use fixed length fields to avoid problems with
  ## mount point or file system names with embedded blanks
  FIELDWIDTHS = "11 11 6 6 5 5 21"
  printf "\n%s\n\n", "                    Available Disk Space"
  printf     "%s\n", "Mount Point          Avail Size  Used  Use%  Filesystem Type"
}

## Eliminate some filesystems
## That are usually not of interest
## anything not starting with a /

! /^\// { next }

## Rearrange the columns and print

{
  TYP=$2
  gsub("^ *", "", TYP)
  printf "%-21s%6s%6s%5s%5s %s%s\n", $7, $5, $3, $4, $6, $1, TYP
}

END { print "" }
PROG

df -hT | tail -n +2 | sort | gawk -f ${AWK}

rm -f ${AWK}

示例输出:
                   Available Disk Space

Mount Point          Avail Size  Used  Use%  Filesystem Type
/                      22G  30G  6.6G   24%  /dev/sda6  ext4    
/media/dataspace       44G 155G  105G   71%  /dev/sda8  ext3    
/home                 5.5G  32G   25G   82%  /dev/sda9  ext3    

图形界面版本:

#!/bin/bash
jdf | zenity  --title "Available Disk Space" --text-info --width=500 --height=300 --timeout=60

新的 GUI 版本,使用 yad 修复了字体。
#!/bin/bash

jdf | yad  --fontname="DejaVu Sans Mono 12" --title "Available Disk Space" --text-info --width=650 --height=300

使用或()可以启用状态栏的默认行为。
在终端上键入此命令以默认启用状态栏。
gsettings set org.gnome.nautilus.window-state start-with-status-bar true

在终端上键入此命令以默认禁用状态栏。
gsettings set org.gnome.nautilus.window-state start-with-status-bar false

在那之后,你会发现Nautilus默认打开状态栏,无需运行其他任何东西。