Linux 中的 df 命令及示例
当您想知道 LINUX 系统上的特定文件系统占用的空间量或特定文件系统上的可用空间量时,使用 Linux 时可能会出现这种情况。 LINUX 是命令友好的,为此提供了一个命令行实用程序,即df命令,它显示包含每个文件名参数的文件系统上可用的磁盘空间量。
- 如果没有文件名作为 df 命令的参数传递,则它显示所有当前安装的文件系统上的可用空间
- .这是您可能想知道的,因为df命令无法显示未挂载文件系统上的可用空间,原因是在某些系统上执行此操作需要对文件系统结构有非常深入的了解。
- 默认情况下, df以1 K块为单位显示磁盘空间。
- df 以 –block -size (这是一个选项)和 DF_BLOCK_SIZE、BLOCKSIZE 和 BLOCK_SIZE 环境变量的第一个可用 SIZE 为单位显示值。
- 默认情况下,单位设置为 1024 字节或 512 字节(如果设置了 POSIXLY_CORRECT)。此处,SIZE 为整数,可选单位,单位为K、M、G、T、P、E、Z、Y (以 K 为单位)。
df 语法:
df [OPTION]...[FILE]...
OPTION : to the options compatible with df command
FILE : specific filename in case you want to know
the disk space usage of a particular file system only.
使用 df 命令
假设您有一个名为 kt.txt 的文件,并且您想知道包含该文件的文件系统上已使用的磁盘空间,那么您可以在这种情况下使用df :
// using df for a specific file //
$df kt.txt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/the2 1957124 1512 1955612 1% /snap/core
/* the df only showed the disk usage
details of the file system that
contains file kt.txt */
现在,如果你不提供任何文件名 t df,那么 df 会显示所有已挂载文件系统的磁盘使用信息,如下所示:
//using df without any filename //
$df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 18761008 15246876 2554440 86% /
none 4 0 4 0% /sys/fs/cgroup
udev 493812 4 493808 1% /dev
tmpfs 100672 1364 99308 2% /run
none 5120 0 5120 0% /run/lock
none 503352 1764 501588 1% /run/shm
none 102400 20 102380 1% /run/user
/dev/the2 1957124 1512 1955612 1% /snap/core
/* in this case df displayed
the disk usage details of all
mounted file systems */
df 命令的选项
- -a,- -all :它还包括输出中的所有虚拟文件,这些文件实际上具有零块大小。
- -B,- -block-size=S :这是我们在上面讨论的选项,用于按 SIZE 缩放大小,例如-BM以 1,048,576 字节为单位打印大小。
- – -total :用于显示大小的总计。
- -h,- -human-readable :它以人类可读的格式打印尺寸。
- -H,- -si :此选项与 -h 相同,但它使用 1000 的幂而不是 1024。
- -i,- -inodes :当您想要显示 inode 信息而不是块使用情况时使用此选项。
- -k :它的用法类似于–block-size-1k。
- -l,- -local :这将仅显示本地文件系统的磁盘使用情况。
- -P,- -portability :它使用 POSIX 输出格式。
- -t,- -type=TYPE :它只会显示类型为 TYPE 的文件系统的输出。
- -T,- -print-type :此选项用于打印输出中显示的文件系统类型。
- -x,- -exclude-type=TYPE :它将从输出中排除所有类型为 TYPE 的文件系统。
- -v :忽略,出于兼容性原因包括在内。
- – -no-sync :这是默认设置,即在获取使用信息之前不调用同步。
- – -sync :它在获取使用信息之前调用同步。
- – -help :显示帮助信息并退出。
- – -version :显示版本信息并退出。
将 df 与选项一起使用的示例
1. 使用 -a :如果需要显示所有文件系统以及具有零块大小的文件系统,则使用-a选项和 df。
//using df with -a//
$df -a
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 18761008 15246876 2554440 86% /
none 4 0 4 0% /sys/fs/cgroup
udev 493812 4 493808 1% /dev
tmpfs 100672 1364 99308 2% /run
none 5120 0 5120 0% /run/lock
none 503352 1764 501588 1% /run/shm
none 102400 20 102380 1% /run/user
/dev/sda3 174766076 164417964 10348112 95% /host
systemd 0 0 0 - /sys/fs/cgroup
/* in this case
systemd file system
having zero block
size is also displayed */
2. 使用 -h :这用于使 df 命令以人类可读的格式显示输出。
//using -h with df//
$df -h kt.txt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/the2 1.9G 1.5M 1.9G 1% /snap/core
/*this output is
easily understandable by
the user and all
cause of -h option */
在上面,G 和 M 分别代表 Gigabytes 和 Megabytes。您可以将 -h 与 df 一起使用,以便为所有已挂载的文件系统生成可读格式的输出,而不仅仅是包含 kt.txt 文件的文件系统。
3. 使用 -k :这将显示文件系统信息和使用情况,以 1 K 块为单位。
//using -k with df//
$df -k kt.txt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/the2 1957124 1512 1955612 1% /snap/core
/* no change cause the
output was initially
shown in the usage
of 1K bytes only */
4. 使用 - -total :此选项用于在输出中生成大小、已使用和可用列的总计。
//using --total with df//
$df --total
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 18761008 15246876 2554440 86% /
none 4 0 4 0% /sys/fs/cgroup
udev 493812 4 493808 1% /dev
tmpfs 100672 1364 99308 2% /run
none 5120 0 5120 0% /run/lock
none 503352 1764 501588 1% /run/shm
none 102400 20 102380 1% /run/user
/dev/the2 1957124 1512 1955612 1% /snap/core
total 21923492 15251540 5712260 92% -
/* the total row
is added in the
output */
5. 使用 -T :借助此选项,您将能够看到相应类型的文件系统,如图所示。
/using -T with df//
$df -T kt.txt
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/the2 squashfs 1957124 1512 1955612 1% /snap/core
/* you can use
-T with df only
to display type of
all the mounted
file systems */
6. 使用 -t :当您希望仅具有特定类型的文件系统的磁盘使用信息时使用此选项。
//using -t with df//
$df -t squashfs
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 18761008 15246876 2554440 86% /
/dev/the2 1957124 1512 1955612 1% /snap/core
/*so the df
displayed only the
info of the file
systems having type
squashfs */
7. 使用 -x :现在,您还可以通过-x选项告诉 df 显示所有文件系统的磁盘使用信息,除了具有特定类型的文件系统。
//using -x with df//
$df -x squashfs
Filesystem 1K-blocks Used Available Use% Mounted on
none 4 0 4 0% /sys/fs/cgroup
udev 493812 4 493808 1% /dev
tmpfs 100672 1364 99308 2% /run
none 5120 0 5120 0% /run/lock
none 503352 1764 501588 1% /run/shm
none 102400 20 102380 1% /run/user
/* in this case info of
/dev/the2 and /dev/loop0
file systems aren't
displayed cause they are
of type squashfs */
8. 使用 -i :此选项用于在输出中显示inode信息。
//using -i with df//
$df -i kt.txt
Filesystem Inodes IUsed IFree Iuse% Mounted on
/dev/the2 489281 48 489233 1% /snap/core
/*showing inode info
of file system
having file kt.txt */
当使用 -i 选项时,第二、第三和第四列显示与 inode 相关的数字,而不是与磁盘相关的数字。
9. 使用 - -sync :默认情况下,df 命令生成带有- -no-sync选项的输出,在报告使用信息之前不会执行同步系统调用。现在我们可以使用 - -sync 选项,该选项将强制同步,从而使输出完全最新。
//using --sync option//
$df --sync
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 18761008 15246876 2554440 86% /
none 4 0 4 0% /sys/fs/cgroup
udev 493812 4 493808 1% /dev
tmpfs 100672 1364 99308 2% /run
none 5120 0 5120 0% /run/lock
none 503352 1764 501588 1% /run/shm
none 102400 20 102380 1% /run/user
/dev/the2 1957124 1512 1955612 1% /snap/core
/* in this case
no change in the output
is observed cause it is
possible that there is no
update info present to
be reflected */
10. 使用 -l :当我们运行 df 命令时,默认情况下它会显示任何外部挂载的文件系统,包括来自外部 NFS 或 Samba 服务器的文件系统。我们可以使用 -l 选项语法从输出中隐藏这些外部文件系统的信息,如下所示。
$df -l
所以,这都是关于 df 命令的。