使用 df 和 du 命令检查 Linux 中的磁盘空间
Linux 有强大的内置命令来检查可用磁盘空间,称为“df”和“du”。让我们了解如何正确使用它们。
df
du
使用 df 命令检查 Linux 中的磁盘空间
检查磁盘空间的最简单且更流行的方法是运行 df 命令。
$ df <options>
如果您运行 df 命令,这就是您将获得的输出。
ubuntu:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 2007152 0 2007152 0% /dev
tmpfs 403960 716 403244 1% /run
/dev/vda1 81120644 31236604 49867656 39% /
tmpfs 2019792 0 2019792 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 2019792 0 2019792 0% /sys/fs/cgroup
/dev/vda15 106858 3668 103190 4% /boot/efi
tmpfs 403956 0 403956 0% /run/user/0
tmpfs 403956 0 403956 0% /run/user/1000
默认情况下,df
命令显示六列:
- 文件系统:文件系统的名称,可能与文件系统上的分区名称相同(
/dev/vda1
或/dev/sda1
例子)。 - 1K-blocks:文件系统上大小为 1Kb 的块数。
/dev/vda1
包含 81120644 个 1K 块,总共有 81120644000 字节或 78.5 GB 空间。 - 已使用:文件系统上使用的 1K 块数。
- 可用:文件系统可用的 1K 块数。
- 使用百分比:文件系统上使用的磁盘百分比。
- 安装于:用于安装文件系统的安装点。
以人类可读的格式显示磁盘空间使用情况
您是否注意到上面的命令以字节为单位显示信息,根本不可读?我们习惯以兆字节、千兆字节等单位读取大小,因为这样很容易理解和记忆。
-h
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 716K 394M 1% /run
/dev/vda1 78G 30G 48G 39% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
tmpfs 395M 0 395M 0% /run/user/0
tmpfs 395M 0 395M 0% /run/user/1000
检查特定文件系统磁盘空间
在某些情况下,您可能希望将搜索限制到主机上的特定文件系统。要检查特定文件系统的磁盘空间,您必须运行以下命令:
$ df <options> <path>
例如,要检查与根挂载点相关的磁盘信息,您可以运行:
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 78G 30G 48G 39% /
查看输出中的特定字段
要实现此结果,只需在命令上附加一个 -output
标志即可。
$ df -h --output='field1','field2' /
例如,要仅显示大小和使用百分比,您可以运行:
$ df -h --output='size','pcent' /
Size Use%
78G 39%
检查 Linux 上的 inode 使用情况
在某些非常特殊的情况下,您可能需要检查 Linux 文件系统上的 inode 使用情况。
这些文件与文件系统上的索引节点紧密耦合。然而,这个索引节点表的大小是有限的。因此,您可能会在磁盘空间耗尽之前耗尽 inode 条目。
如果您的系统已经处理了太多文件(无论是否很小),它将无法为新文件分配更多空间,即使您的磁盘有 30GB 可用空间。
-inodes
$ df --inodes
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 501788 384 501404 1% /dev
tmpfs 504948 617 504331 1% /run
/dev/vda1 10321920 320672 10001248 4% /
tmpfs 504948 1 504947 1% /dev/shm
tmpfs 504948 4 504944 1% /run/lock
tmpfs 504948 18 504930 1% /sys/fs/cgroup
/dev/vda15 0 0 0 - /boot/efi
tmpfs 504948 19 504929 1% /run/user/0
tmpfs 504948 10 504938 1% /run/user/1000
-h
$ df -h --inodes /
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda1 9.9M 314K 9.6M 4% /
使用 du 命令检查 Linux 中的磁盘空间
du
命令用于获取与系统上的目录和文件相关的磁盘使用信息。
$ du <option> <path|file>du <option> <path1> <path2> <path3>
根据指定,您可以获取特定文件的磁盘使用情况,也可以获取系统上的路径。
检查文件磁盘使用情况
要检查特定文件的磁盘使用情况,只需将文件名附加到 du
命令即可。
例如,要检查 .bashrc 文件的大小,您可以运行:
$ du ~/.bashrc
4 /home/user3/.bashrc
-B
$ du -BM ~/.bashrc
1M /home/user3/.bashrc
请注意,尺寸将四舍五入到最接近的整数。在本例中,.bashrc
文件不是 1Mb 大,但已自动舍入。
当然,您也可以选择以人类可读的格式显示大小,验证大小确实以千字节为单位显示。
$ du -h ~/.bashrc
4.0K /home/user3/.bashrc
-h
-apparent-size
$ du -h --apparent-size ~/.bashrc
3.7K /home/user3/.bashrc
检查目录磁盘使用情况
另一方面,您可以通过指定 du 命令的路径来检查目录磁盘使用情况。
例如,如果您正在查找文件系统上所有目录的磁盘使用情况,您将运行:
$ du /
...
0 /run/udev/links/\x2fdisk\x2fby-id\x2fwwn-0x5002538e09a787b4-part3
0 /run/udev/links/\x2fdisk\x2fby-partuuid\x2f6bd9a838-03
0 /run/udev/links/\x2fdisk\x2fby-id\x2fwwn-0x5002538e09a787b4
0 /run/udev/links/\x2fdisk\x2fby-path\x2fpci-0000:00:1f.2-ata-1
0 /run/udev/links
868 /run/udev/data
868 /run/udev
4 /run/tmpfiles.d
0 /run/initramfs
1384 /run
448393904
但是,在某些情况下,您不希望查看路径上每个文件或目录的输出,而是希望查看给定路径的总计。
-shc
$ sudo du -shc /home
2.8G /home
2.8G total
以下是所使用选项的细分:
-s
-c
-h
:总而言之,它将显示提供的每个路径的总计,而不是其中每个文件和目录的完整列表。
:对于总计,如果您指定多个路径,它将对它们进行求和以生成总计。
:为了人类可读,它将显示带有单位的结果。
结论
df
du
因此,您可以做出明智的决定,将某些数据移动到其他存储、向计算机添加另一个硬盘驱动器或删除冗余数据。
这些命令有很多选项。我们在这里仅描述了最有用的选项。您可以在 Linux 手册页中查看 df 命令和 du 命令选项的完整列表。