📜  Linux 中的 df 命令及示例

📅  最后修改于: 2022-05-13 01:57:05.335000             🧑  作者: Mango

Linux 中的 df 命令及示例

当您想知道 LINUX 系统上的特定文件系统占用的空间量或特定文件系统上的可用空间量时,使用 Linux 时可能会出现这种情况。 LINUX 是命令友好的,为此提供了一个命令行实用程序,df命令,它显示包含每个文件名参数的文件系统上可用的磁盘空间量。

  • 如果没有文件名作为 df 命令的参数传递,则它显示所有当前安装的文件系统上的可用空间
  • .这是您可能想知道的,因为df命令无法显示未挂载文件系统上的可用空间,原因是在某些系统上执行此操作需要对文件系统结构有非常深入的了解。
  • 默认情况下, df1 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 命令的。