df 即“可用磁盘”(disk free),用于显示文件系统的磁盘使用情况。默认情况下 df 命令将以每块 1K 的单位进行显示所有当前已挂载的文件系统,如果你想以人类易读的格式显示 df 命令的输出,像这样df -h使用 -h 选项。

在这篇文章中,我们将讨论 df 命令在 Linux 下11种不同的实例。

在 Linux 下 df 命令的基本格式为:

# df {options} {mount_point_of_filesystem}

在 df 命令中可用的选项有:

img
img

df 的样例输出 :

    [root@linux-world ~]# df
    Filesystem            1K-blocks   Used Available Use% Mounted on
    /dev/mapper/vg00-root  17003304 804668  15311852   5% /
    devtmpfs                 771876      0    771876   0% /dev
    tmpfs                    777928      0    777928   0% /dev/shm
    tmpfs                    777928   8532    769396   2% /run
    tmpfs                    777928      0    777928   0% /sys/fs/cgroup
    /dev/mapper/vg00-home  14987616  41000  14162232   1% /home
    /dev/sda1                487652  62593    395363  14% /boot
    /dev/mapper/vg00-var    9948012  48692   9370936   1% /var
    /dev/mapper/vg00-sap   14987656  37636  14165636   1% /sap
    [root@linux-world ~]#

例1:使用 -a 选项列出所有文件系统的磁盘使用量

当我们在 df 命令中使用 -a 选项时,它会显示所有文件系统的磁盘使用情况。

    [root@linux-world ~]# df -a
    Filesystem            1K-blocks   Used Available Use% Mounted on
    rootfs                 17003304 804668  15311852   5% /
    proc                          0      0         0    - /proc
    sysfs                         0      0         0    - /sys
    devtmpfs                 771876      0    771876   0% /dev
    securityfs                    0      0         0    - /sys/kernel/security
    tmpfs                    777928      0    777928   0% /dev/shm
    devpts                        0      0         0    - /dev/pts
    tmpfs                    777928   8532    769396   2% /run
    tmpfs                    777928      0    777928   0% /sys/fs/cgroup
    cgroup                        0      0         0    - /sys/fs/cgroup/systemd
    pstore                        0      0         0    - /sys/fs/pstore
    cgroup                        0      0         0    - /sys/fs/cgroup/cpuset
    cgroup                        0      0         0    - /sys/fs/cgroup/cpu,cpuacct
    cgroup                        0      0         0    - /sys/fs/cgroup/memory
    cgroup                        0      0         0    - /sys/fs/cgroup/devices
    cgroup                        0      0         0    - /sys/fs/cgroup/freezer
    cgroup                        0      0         0    - /sys/fs/cgroup/net_cls
    cgroup                        0      0         0    - /sys/fs/cgroup/blkio
    cgroup                        0      0         0    - /sys/fs/cgroup/perf_event
    cgroup                        0      0         0    - /sys/fs/cgroup/hugetlb
    configfs                      0      0         0    - /sys/kernel/config
    /dev/mapper/vg00-root  17003304 804668  15311852   5% /
    selinuxfs                     0      0         0    - /sys/fs/selinux
    systemd-1                     0      0         0    - /proc/sys/fs/binfmt_misc
    debugfs                       0      0         0    - /sys/kernel/debug
    hugetlbfs                     0      0         0    - /dev/hugepages
    mqueue                        0      0         0    - /dev/mqueue
    /dev/mapper/vg00-home  14987616  41000  14162232   1% /home
    /dev/sda1                487652  62593    395363  14% /boot
    /dev/mapper/vg00-var    9948012  48692   9370936   1% /var
    /dev/mapper/vg00-sap   14987656  37636  14165636   1% /sap
    [root@linux-world ~]#

例2:以人类易读的格式显示 df 命令的输出

在 df 命令中使用-h选项,以人类易读的格式输出(例如,5K,500M 及 5G)

    [root@linux-world ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    /dev/mapper/vg00-root   17G  786M   15G   5% /
    devtmpfs               754M     0  754M   0% /dev
    tmpfs                  760M     0  760M   0% /dev/shm
    tmpfs                  760M  8.4M  752M   2% /run
    tmpfs                  760M     0  760M   0% /sys/fs/cgroup
    /dev/mapper/vg00-home   15G   41M   14G   1% /home
    /dev/sda1              477M   62M  387M  14% /boot
    /dev/mapper/vg00-var   9.5G   48M  9.0G   1% /var
    /dev/mapper/vg00-sap    15G   37M   14G   1% /sap
    [root@linux-world ~]#

例3:显示特定文件系统已使用的空间

假如我们想显示 /sap 文件系统空间的使用情况。

    [root@linux-world ~]# df -h /sap/
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg00-sap   15G   37M   14G   1% /sap
    [root@linux-world ~]#

例4:输出所有已挂载文件系统的类型

-T 选项用在 df 命令中用来显示文件系统的类型。

    [root@linux-world ~]# df -T
    Filesystem            Type     1K-blocks   Used Available Use% Mounted on
    /dev/mapper/vg00-root ext4      17003304 804668  15311852   5% /
    devtmpfs              devtmpfs    771876      0    771876   0% /dev
    tmpfs                 tmpfs       777928      0    777928   0% /dev/shm
    tmpfs                 tmpfs       777928   8532    769396   2% /run
    tmpfs                 tmpfs       777928      0    777928   0% /sys/fs/cgroup
    /dev/mapper/vg00-home ext4      14987616  41000  14162232   1% /home
    /dev/sda1             ext3        487652  62593    395363  14% /boot
    /dev/mapper/vg00-var  ext3       9948012  48696   9370932   1% /var
    /dev/mapper/vg00-sap  ext3      14987656  37636  14165636   1% /sap
    [root@linux-world ~]#

例5:按块大小输出文件系统磁盘使用情况

    [root@linux-world ~]# df -k
    Filesystem            1K-blocks   Used Available Use% Mounted on
    /dev/mapper/vg00-root  17003304 804668  15311852   5% /
    devtmpfs                 771876      0    771876   0% /dev
    tmpfs                    777928      0    777928   0% /dev/shm
    tmpfs                    777928   8532    769396   2% /run
    tmpfs                    777928      0    777928   0% /sys/fs/cgroup
    /dev/mapper/vg00-home  14987616  41000  14162232   1% /home
    /dev/sda1                487652  62593    395363  14% /boot
    /dev/mapper/vg00-var    9948012  48696   9370932   1% /var
    /dev/mapper/vg00-sap   14987656  37636  14165636   1% /sap
    [root@linux-world ~]#

例6:输出文件系统的 inode 信息

-i 选项用在 df 命令用于显示文件系统的 inode 信息。

所有文件系统的 inode 信息:

    [root@linux-world ~]# df -i
    Filesystem             Inodes IUsed   IFree IUse% Mounted on
    /dev/mapper/vg00-root 1089536 22031 1067505    3% /
    devtmpfs               192969   357  192612    1% /dev
    tmpfs                  194482     1  194481    1% /dev/shm
    tmpfs                  194482   420  194062    1% /run
    tmpfs                  194482    13  194469    1% /sys/fs/cgroup
    /dev/mapper/vg00-home  960992    15  960977    1% /home
    /dev/sda1              128016   337  127679    1% /boot
    /dev/mapper/vg00-var   640848  1235  639613    1% /var
    /dev/mapper/vg00-sap   960992    11  960981    1% /sap
    [root@linux-world ~]#

特定文件系统的 inode 信息:

    [root@linux-world ~]# df -i /sap/
    Filesystem           Inodes IUsed  IFree IUse% Mounted on
    /dev/mapper/vg00-sap 960992    11 960981    1% /sap
    [root@linux-world ~]#

例7:输出所有文件系统使用情况汇总

-total 选项在 df 命令中用于显示所有文件系统的磁盘使用情况汇总。

    [root@linux-world ~]# df -h --total
    Filesystem             Size  Used Avail Use% Mounted on
    /dev/mapper/vg00-root   17G  786M   15G   5% /
    devtmpfs               754M     0  754M   0% /dev
    tmpfs                  760M     0  760M   0% /dev/shm
    tmpfs                  760M  8.4M  752M   2% /run
    tmpfs                  760M     0  760M   0% /sys/fs/cgroup
    /dev/mapper/vg00-home   15G   41M   14G   1% /home
    /dev/sda1              477M   62M  387M  14% /boot
    /dev/mapper/vg00-var   9.5G   48M  9.0G   1% /var
    /dev/mapper/vg00-sap    15G   37M   14G   1% /sap
    total                   58G  980M   54G   2% -
    [root@linux-world ~]#

例8:只打印本地文件系统磁盘的使用情况

假设网络文件系统也挂载在 Linux 上,但我们只想显示本地文件系统的信息,这可以通过使用 df 命令的 -l 选项来实现。

img
img

只打印本地文件系统:

    [root@linux-world ~]# df -Thl
    Filesystem            Type      Size  Used Avail Use% Mounted on
    /dev/mapper/vg00-root ext4       17G  791M   15G   6% /
    devtmpfs              devtmpfs  754M     0  754M   0% /dev
    tmpfs                 tmpfs     760M     0  760M   0% /dev/shm
    tmpfs                 tmpfs     760M  8.4M  752M   2% /run
    tmpfs                 tmpfs     760M     0  760M   0% /sys/fs/cgroup
    /dev/mapper/vg00-home ext4       15G   41M   14G   1% /home
    /dev/sda1             ext3      477M   62M  387M  14% /boot
    /dev/mapper/vg00-var  ext3      9.5G  105M  8.9G   2% /var
    /dev/mapper/vg00-sap  ext3       15G   37M   14G   1% /sap
    [root@linux-world ~]#

例9:打印特定文件系统类型的磁盘使用情况

-t 选项在 df 命令中用来打印特定文件系统类型的信息,用 -t 指定文件系统的类型,如下所示:

对于 ext4 :

    [root@linux-world ~]# df -t ext4
    Filesystem            1K-blocks   Used Available Use% Mounted on
    /dev/mapper/vg00-root  17003304 809492  15307028   6% /
    /dev/mapper/vg00-home  14987616  41000  14162232   1% /home
    [root@linux-world ~]#

对于 nfs4 :

    [root@linux-world ~]# df -t nfs4
    Filesystem            1K-blocks      Used Available Use% Mounted on
    192.168.1.5:/opensuse 301545472 266833920  19371008  94% /data
    [root@linux-world ~]#

例10:使用 -x 选项排除特定的文件系统类型

-x–exclude-type 在 df 命令中用来在输出中排出某些文件系统类型。

假设我们想打印除 ext3 外所有的文件系统。

    [root@linux-world ~]# df -x ext3
    Filesystem            1K-blocks      Used Available Use% Mounted on
    /dev/mapper/vg00-root  17003304    809492  15307028   6% /
    devtmpfs                 771876         0    771876   0% /dev
    tmpfs                    777928         0    777928   0% /dev/shm
    tmpfs                    777928      8540    769388   2% /run
    tmpfs                    777928         0    777928   0% /sys/fs/cgroup
    /dev/mapper/vg00-home  14987616     41000  14162232   1% /home
    192.168.1.5:/opensuse 301545472 266834944  19369984  94% /data
    [root@linux-world ~]#

例11:在 df 命令的输出中只打印特定的字段

-output={field_name1,field_name2...} 选项用于显示 df 命令某些字段的输出。

可用的字段名有: source, fstype, itotal, iused, iavail, ipcent, size, used, avail, pcenttarget

    [root@linux-world ~]# df --output=fstype,size,iused
    Type     1K-blocks  IUsed
    ext4      17003304  22275
    devtmpfs    771876    357
    tmpfs       777928      1
    tmpfs       777928    423
    tmpfs       777928     13
    ext4      14987616     15
    ext3        487652    337
    ext3       9948012   1373
    ext3      14987656     11
    nfs4     301545472 451099
    [root@linux-world ~]#