目录
使用 df 命令检查 Linux 中的磁盘空间
使用 du 命令检查 Linux 中的磁盘空间
这
df
命令代表disk filesystem
. 它用于获取Linux 系统上文件系统的可用和已用磁盘空间使用情况的完整摘要。这
du
命令,简称disk usage
, 用于估计文件空间使用情况。该du
命令可用于跟踪占用硬盘驱动器空间过多的文件和目录。
检查磁盘空间的最简单、更流行的方法是运行该
df
命令。
> df <options>
运行
df
命令输出。
> 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
命令显示六列:
Filesystem
: 文件系统的名称可能等于文件系统上的分区名称(/dev/vda1
或/dev/sda1
例如)。1K-blocks
:大小为 1Kb 的文件系统上的块数。所述/dev/vda1
包含81120644 1K块,它具有81120644000个字节或总的空间78.5千兆字节。Used
:文件系统上使用的 1K 块的数量。Available
:文件系统可用的 1K 块数。Use %
:文件系统上使用的磁盘百分比。Mounted on
: 用于挂载文件系统的挂载点。你有没有注意到,上面的命令以字节为单位显示信息,根本不可读。我们习惯于阅读以兆字节、千兆字节等为单位的大小,因为它很容易理解和记忆。
该
df
命令提供了一个选项来显示尺寸Human Readable
使用格式-h
(以人类可读的格式打印结果(例如,1K 2M 3G))。
> df -h
Filesystem Size Used Avail Use% Mounted on
udev 0G 0 0G 0% /dev
tmpfs 395M 716K 394M 1% /run
/dev/vda1 78G 30G 48G 39% /
tmpfs 0G 0 0G 0% /dev/shm
tmpfs 0M 0 0M 0% /run/lock
tmpfs 0G 0 0G 0% /sys/fs/cgroup
/dev/vda15 105M 6M 101M 4% /boot/efi
tmpfs 395M 0 395M 0% /run/user/0
tmpfs 395M 0 395M 0% /run/user/1000
在某些情况下,你可能希望
restrict your search
到主机上的特定文件系统。要检查特定文件系统的磁盘空间,你必须运行以下命令:
$ df <options> <path>
例如,要检查与根挂载点相关的磁盘信息,你可以运行:
> df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 78G 30G 48G 39% /
要实现此结果,只需
-output
在你的命令上附加一个标志。
$ df -h --output='field1','field2' /
例如,只显示
size
和usage percentage
,你会运行:
$ df -h --output='size','pcent' /
Size Use% 78G 39%
在某些非常特殊的情况下,你可能需要检查 Linux 文件系统上的 inode 使用情况。
这些文件与文件系统上的 inode 紧密耦合。但是,此 inode 表的大小有限。因此,你可能会在用完磁盘空间之前用完 inode 条目。
如果你的系统已经处理了太多文件(很小或很小),即使你的磁盘有 30GB 可用空间,它也无法为新文件分配更多空间。
为了检查 Linux 上的 inode 使用情况,请附加
-inodes
df
命令的标志。
> 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 9M 314K 6M 4% /
该
du
命令用于获取与系统上的目录和文件相关的磁盘使用信息。
$ du <option> <path|file>
$ du <option> <path1> <path2> <path3>
根据指定,你可以拥有特定文件或系统路径的磁盘使用情况。
为了检查特定文件的磁盘使用情况,
simply append the name of the file to the
ducommand.
例如,要检查
.bashrc
文件的大小,你可以运行:
> du ~/.bashrc
4 /home/user3/.bashrc
默认情况下,尺寸显示在
kilobytes
. 但是,你可以通过指定大小格式来更改默认显示-B
选项。
> du -BM ~/.bashrc
1M /home/user3/.bashrc
请注意,大小将四舍五入到最接近的整数。在这种情况下,
.bashrc
文件的大小不是 1Mb,而是自动四舍五入。当然,你也可以选择以人类可读的格式显示大小,以验证大小确实以千字节为单位显示。
> du -h ~/.bashrc
0K /home/user3/.bashrc
这
-h
选项可以与-apparent-size
选项,以便在不舍入的情况下获得文件的实际大小。
> du -h --apparent-size ~/.bashrc
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
但是,在某些情况下,你不希望看到路径上每个文件或目录的输出,而是希望看到给定路径的总数。
要检查总的磁盘使用情况给定的路径,使用
du
与-shc
选项。
> sudo du -shc /home
8G /home
8G total
以下是所用选项的细分:
-s
:总而言之,它将显示提供的每个路径的总数,而不是其中每个文件和目录的完整列表。-c
:对于总计,如果你指定多个路径,它将对它们求和以生成它们的总计。-h
: 对于人类可读,它将显示带有单位的结果。