linux命令详解之df(6/19)

Posted klb561

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令详解之df(6/19)相关的知识,希望对你有一定的参考价值。

df命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。 
df命令显示系统中包含每个文件名参数的磁盘使用情况,如果没有文件名参数,则显示所有当前已挂载文件系统的磁盘空间使用情况,参考示例1。 
在默认情况下,磁盘空间是以1KB为单位进行显示的,但是,如果POSIXLY_CORRECT环境变量被设置为true,这种情况下默认使用512字节为单位显示,参考示例9

df命令语法

df [选项] [文件名] 
参数: 
-a--all,显示所有的文件系统,包括虚拟文件系统,参考示例2。 
-B--block-size,指定单位大小。比如1k,1m等,参考示例3。 
-h--human-readable,以人们易读的GB、MB、KB等格式显示,参考示例4。 
-H--si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。 
-i--inodes,不用硬盘容量,而是以inode的数量来显示,参考示例5。 
-k:以KB的容量显示各文件系统,相当于--block-size=1k。 
-m:以KB的容量显示各文件系统,相当于--block-size=1m。 
-l--local,只显示本地文件系统。 
--no-sync:在统计使用信息之前不调用sync命令(默认)。 
-sync:在统计使用信息之前调用sync命令。 
-P--portability,使用POSIX格式显示,参考示例6。 
-t--type=TYPE,只显示指定类型的文件系统,参考示例7。 
-T--print-type,显示文件系统类型,参考示例8。 
-x--exclude-type=TYPE,不显示指定类型的文件系统。 
--help:显示帮助信息。 
--version:显示版本信息。

df命令示例

示例1:查看包含给定文件磁盘空间使用情况

[root@localhost ~]# df /home   #指定一个文件夹,查看该文件夹所在磁盘的使用情况
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls   #指定一个文件
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home  #指定多个文件或文件夹
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home /usr/  #指定多个文件或文件夹
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df   # 默认情况
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

输出结果列说明:

  • Filesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
  • 1K-blocks:说明下面的数字单位是1KB,可利用-h-m来改变单位大小,也可以用-B来设置。
  • Used:已经使用的空间大小。
  • Available:剩余的空间大小。
  • Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
  • Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。

示例2:查看所有文件系统

[root@localhost ~]# df -a    #包括虚拟文件系统
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
proc                         0         0         0   -  /proc

[root@localhost ~]# df     # 默认
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 说明:系统里面存在很多特殊的文件系统,这些比较特殊的文件系统几乎都是在内存当中,(如/proc挂载点),所以,这些特殊文件系统都不会占据硬盘空间。

示例3:指定单位大小

[root@localhost ~]# df -B 1k    #1k为单位
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# df --block-size 1m   #1M为单位
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2                15661      2685     12168  19% /
/dev/sda1                  289        17       258   7% /boot
tmpfs                     1005         0      1005   0% /dev/shm
  • 示例4:以人们易读的方式显示
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              16G  2.7G   12G  19% /
/dev/sda1             289M   17M  258M   7% /boot
tmpfs                1005M     0 1005M   0% /dev/shm

示例5:以inode的数量显示

[root@localhost ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda2            4141216  101279 4039937    3% /
/dev/sda1              76304      35   76269    1% /boot
tmpfs                 257068       1  257067    1% /dev/shm
  • 示例6:使用POSIX格式显示
[root@localhost ~]# df -P  #使用POSIX格式显示
Filesystem         1024-blocks      Used Available Capacity Mounted on
/dev/sda2             16036224   2750464  12458012      19% /
/dev/sda1               295561     16911    263390       7% /boot
tmpfs                  1028272         0   1028272       0% /dev/shm

[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 示例7:只显示类型为ext3的文件系统
[root@localhost ~]# df -t ext3
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot

示例8:显示出每个文件系统的类型

[root@localhost ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda2     ext3    16036224   2750464  12458012  19% /
/dev/sda1     ext3      295561     16911    263390   7% /boot
tmpfs        tmpfs     1028272         0   1028272   0% /dev/shm
  • 示例9:显示出每个文件系统的类型
[root@localhost ~]# df   #默认情况是1024
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# export POSIXLY_CORRECT=true   #设置POSIXLY_CORRECT为true

[root@localhost ~]# df    #POSIXLY_CORRECT为true时默认512
Filesystem         512B-blocks      Used Available Use% Mounted on
/dev/sda2             32072448   5500928  24916024  19% /
/dev/sda1               591122     33822    526780   7% /boot
tmpfs                  2056544         0   2056544   0% /dev/shm

[root@localhost ~]# unset POSIXLY_CORRECT   #取消设置POSIXLY_CORRECT
[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[[email protected] log]# df -H

文件系统               容量   已用  可用 已用% 挂载点

/dev/sda7               21G   913M    19G   5% /

[[email protected] log]# df -lh

文件系统              容量  已用 可用 已用% 挂载点

/dev/sda7              19G  871M   18G   5% /

[[email protected] log]# df -k

文件系统               1K-块        已用     可用 已用% 挂载点

/dev/sda7             19840892    890896  17925856   5% /

/dev/sda9            203727156  93292572  99918840  49% /opt

/dev/sda8              4956284    570188   4130264  13% /var

du查看目录大小,df查看磁盘使用情况。
我常使用的命令(必要时,sudo使用root权限),
1.查看某个目录的大小:du -hs /home/master/documents
  查看目录下所有目录的大小并按大小降序排列:sudo du -sm /etc/* | sort -nr | less
2.查看磁盘使用情况(文件系统的使用情况):sudo df -h
  df --block-size=GB

-h是使输出结果更易于人类阅读;du -s只展示目录的使用总量(不分别展示各个子目录情况),-m是以MB为单位展示目录的大小(当然-k/-g就是KB/GB了)。
更多信息,还是man du 和 man df 来获得吧。

 du

du的英文为:disk usage,含义是磁盘空间使用情况,功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况,如果没有指定目录,则对当前的目录进行统计。
du的命令各个选项含义如下:

a:显示全部目录和其次目录下的每个档案所占的磁盘空间
s:只显示各档案大小的总合 
b:大小用bytes来表示
x:跳过在不同文件系统上的目录不予统计
a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数
...
使用du进行查看
[email protected]:/home/htmlfile# du
16      ./test
60      ./bbb
84      .

其中第一列是以块为单位计的磁盘空间容量,第二列列出目录中使用这些空间的目录名称

1)查看当前目录包含子目录的大小
[email protected]:/home/htmlfile# du -sm .
1       .
其中的du -sm . 的“.”是代表当前目录。

2)查看当前目录以及子目录的大小
[email protected]:/home/htmlfile# du -h
16K     ./test
60K     ./bbb
84K     .
其中 -h 表示使用K,M,G的人性化形式显示。

3)看到当前目录下的bbb目录大小,但不想查看其他目录以及子目录
[email protected]:/home/htmlfile# du -ch bbb | tail -n 1
60K     total
使用了管道包含了du和tail两个命令,-c表示最后计算出所列目录的大小之和。

4)列出当前目录下所有目录和文件的大小
[email protected]:/home/htmlfile# du -ah bbb
4.0K    bbb/mysql.php
4.0K    bbb/index.htm
4.0K    bbb/p.php
其中-a表示包含目录和文件

5)不换行列出目录以及子目录大小的信息
[email protected]:/home/htmlfile# du -0h
16K     ./test60K       ./bbb84K        [email protected]:/home/htmlfile# 
其中 -0 表示列出一条信息后不换行,接着输出第二条信息

实例8:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

命令:du -c log30.tar.gz log31.tar.gz

实例7:文件和目录都显示

命令:

输出:[[email protected] soft]# du -ah test

df [选项] [文件名] 
参数: 
-a--all,显示所有的文件系统,包括虚拟文件系统,参考示例2。 
-B--block-size,指定单位大小。比如1k,1m等,参考示例3。 
-h--human-readable,以人们易读的GB、MB、KB等格式显示,参考示例4。 
-H--si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。 
-i--inodes,不用硬盘容量,而是以inode的数量来显示,参考示例5。 
-k:以KB的容量显示各文件系统,相当于--block-size=1k。 
-m:以KB的容量显示各文件系统,相当于--block-size=1m。 
-l--local,只显示本地文件系统。 
--no-sync:在统计使用信息之前不调用sync命令(默认)。 
-sync:在统计使用信息之前调用sync命令。 
-P--portability,使用POSIX格式显示,参考示例6。 
-t--type=TYPE,只显示指定类型的文件系统,参考示例7。 
-T--print-type,显示文件系统类型,参考示例8。 
-x--exclude-type=TYPE,不显示指定类型的文件系统。 
--help:显示帮助信息。 
--version:显示版本信息。

df命令示例

示例1:查看包含给定文件磁盘空间使用情况

[root@localhost ~]# df /home   #指定一个文件夹,查看该文件夹所在磁盘的使用情况
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls   #指定一个文件
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home  #指定多个文件或文件夹
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home /usr/  #指定多个文件或文件夹
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df   # 默认情况
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

输出结果列说明:

  • Filesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
  • 1K-blocks:说明下面的数字单位是1KB,可利用-h-m来改变单位大小,也可以用-B来设置。
  • Used:已经使用的空间大小。
  • Available:剩余的空间大小。
  • Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
  • Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。

示例2:查看所有文件系统

[root@localhost ~]# df -a    #包括虚拟文件系统
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
proc                         0         0         0   -  /proc

[root@localhost ~]# df     # 默认
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 说明:系统里面存在很多特殊的文件系统,这些比较特殊的文件系统几乎都是在内存当中,(如/proc挂载点),所以,这些特殊文件系统都不会占据硬盘空间。

示例3:指定单位大小

[root@localhost ~]# df -B 1k    #1k为单位
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# df --block-size 1m   #1M为单位
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2                15661      2685     12168  19% /
/dev/sda1                  289        17       258   7% /boot
tmpfs                     1005         0      1005   0% /dev/shm
  • 示例4:以人们易读的方式显示
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              16G  2.7G   12G  19% /
/dev/sda1             289M   17M  258M   7% /boot
tmpfs                1005M     0 1005M   0% /dev/shm

示例5:以inode的数量显示

[root@localhost ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda2            4141216  101279 4039937    3% /
/dev/sda1              76304      35   76269    1% /boot
tmpfs                 257068       1  257067    1% /dev/shm
  • 示例6:使用POSIX格式显示
[root@localhost ~]# df -P  #使用POSIX格式显示
Filesystem         1024-blocks      Used Available Capacity Mounted on
/dev/sda2             16036224   2750464  12458012      19% /
/dev/sda1               295561     16911    263390       7% /boot
tmpfs                  1028272         0   1028272       0% /dev/shm

[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 示例7:只显示类型为ext3的文件系统
[root@localhost ~]# df -t ext3
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot

示例8:显示出每个文件系统的类型

[root@localhost ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda2     ext3    16036224   2750464  12458012  19% /
/dev/sda1     ext3      295561     16911    263390   7% /boot
tmpfs        tmpfs     1028272         0   1028272   0% /dev/shm
  • 示例9:显示出每个文件系统的类型
[root@localhost ~]# df   #默认情况是1024
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# export POSIXLY_CORRECT=true   #设置POSIXLY_CORRECT为true

[root@localhost ~]# df    #POSIXLY_CORRECT为true时默认512
Filesystem         512B-blocks      Used Available Use% Mounted on
/dev/sda2             32072448   5500928  24916024  19% /
/dev/sda1               591122     33822    526780   7% /boot
tmpfs                  2056544         0   2056544   0% /dev/shm

[root@localhost ~]# unset POSIXLY_CORRECT   #取消设置POSIXLY_CORRECT
[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[[email protected] log]# df -H

文件系统               容量   已用  可用 已用% 挂载点

/dev/sda7               21G   913M    19G   5% /

[[email protected] log]# df -lh

文件系统              容量  已用 可用 已用% 挂载点

/dev/sda7              19G  871M   18G   5% /

[[email protected] log]# df -k

文件系统               1K-块        已用     可用 已用% 挂载点

/dev/sda7             19840892    890896  17925856   5% /

/dev/sda9            203727156  93292572  99918840  49% /opt

/dev/sda8              4956284    570188   4130264  13% /var

du查看目录大小,df查看磁盘使用情况。
我常使用的命令(必要时,sudo使用root权限),
1.查看某个目录的大小:du -hs /home/master/documents
  查看目录下所有目录的大小并按大小降序排列:sudo du -sm /etc/* | sort -nr | less
2.查看磁盘使用情况(文件系统的使用情况):sudo df -h
  df --block-size=GB

-h是使输出结果更易于人类阅读;du -s只展示目录的使用总量(不分别展示各个子目录情况),-m是以MB为单位展示目录的大小(当然-k/-g就是KB/GB了)。
更多信息,还是man du 和 man df 来获得吧。

 du

du的英文为:disk usage,含义是磁盘空间使用情况,功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况,如果没有指定目录,则对当前的目录进行统计。
du的命令各个选项含义如下:

a:显示全部目录和其次目录下的每个档案所占的磁盘空间
s:只显示各档案大小的总合 
b:大小用bytes来表示
x:跳过在不同文件系统上的目录不予统计
a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数
...
使用du进行查看
[email protected]:/home/htmlfile# du
16      ./test
60      ./bbb
84      .

其中第一列是以块为单位计的磁盘空间容量,第二列列出目录中使用这些空间的目录名称

1)查看当前目录包含子目录的大小
[email protected]:/home/htmlfile# du -sm .
1       .
其中的du -sm . 的“.”是代表当前目录。

2)查看当前目录以及子目录的大小
[email protected]:/home/htmlfile# du -h
16K     ./test
60K     ./bbb
84K     .
其中 -h 表示使用K,M,G的人性化形式显示。

3)看到当前目录下的bbb目录大小,但不想查看其他目录以及子目录
[email protected]:/home/htmlfile# du -ch bbb | tail -n 1
60K     total
使用了管道包含了du和tail两个命令,-c表示最后计算出所列目录的大小之和。

4)列出当前目录下所有目录和文件的大小
[email protected]:/home/htmlfile# du -ah bbb
4.0K    bbb/mysql.php
4.0K    bbb/index.htm
4.0K    bbb/p.php
其中-a表示包含目录和文件

5)不换行列出目录以及子目录大小的信息
[email protected]:/home/htmlfile# du -0h
16K     ./test60K       ./bbb84K        [email protected]:/home/htmlfile# 
其中 -0 表示列出一条信息后不换行,接着输出第二条信息

实例8:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

命令:du -c log30.tar.gz log31.tar.gz

实例7:文件和目录都显示

命令:

输出:[[email protected] soft]# du -ah test

每天一个linux命令(2):file 命令

 

作用:查看文件类型信息 

格式:file[OPTIONS...] [FILE...]

 

主要参数:

--help            显示帮助信息

-v,--version         输出版本信息并退出

-b,--brief               不显示文件名字

-f,--files-fromFILE      显示指定文件的类型(可指定多个用" "分开)

-F,--seperatorSTRING    使用字符串作为分隔符,不再使用“:”

-i,--mime           显示文件的mime类型

--mime-type

--mime-encoding

-L,--dereference       显示符号链接所指向文件信息

-h,--no-dereference

-d,--debug          输出调试信息

 

示例:

查看当前路径下所有文件信息

file *

不显示文件名称

file --brief 1.txt

显示文件mime类型

file --mime 1.txt

显示名称列表所列文件信息

file -f 1.txt

显示符号链接所指向类型

file -L 1.txt

显示帮助信息

file --help

显示版本信息

file--version


 
 













































































































































以上是关于linux命令详解之df(6/19)的主要内容,如果未能解决你的问题,请参考以下文章

linux命令详解之du命令

Linux:df -h 命令结果参数详解

Linux下查看文件大小文件占磁盘大小等详解(du 和df )使用命令

linux命令 $- 是啥意思

Linux df排查inode已满及解决方法

Linux命令之df