离线下载
PDF版 ePub版

见证大牛成长之路 · 更新于 2018-11-28 11:00:43

shell 学习四十六天---文件系统的空间信息 df 和 du 命令

df 命令

df 命令提供单行摘要,一行显示一个加载的问价系统的已使用的和可用的空间.其单位视系统而定,有些使用块,有些则是 KB.大部分现代实现都支持-k 选项,也就是强制使用 KB 单位,以及-l(小写字母 L)选项,仅显示本地文件系统,排除网络加载的文件系统.

df 命令详解
语法:
df [选项] [文件或目录]
用途:
显示一个或多个文件系统内部的 inode 或空间使用情况
主要选项:
-i 显示 inode 技术,而非空间
-k 显示空间时,以 KB 为单位,而非块
-l 小写 L,仅显示本地文件系统

行为:
df 会针对每个文件或目录参数,如果无提供参数,则为所有的文件系统,产生单行表头以识别输出兰,再接上包含该文件或目录的文件系统的使用量报告.

案例

$df  
Filesystem     1K-blocks    Used Available Use% Mounted on  
/dev/sda3        1032088  262592    717068  27% /  
tmpfs             961216       0    961216   0% /dev/shm  
/dev/sda1         198337   34004    154093  19% /boot  
/dev/sda7       14219628  166640  13330660   2% /home  
/dev/sda2        3120456 1874636   1087308  64% /usr  
/dev/sda5        1032088  177716    801944  19% /var  
/dev/sdb1        2071384   68632   1897528   4% /disk1  

分析:df 命令的输出清单的第一列是代表文件系统对应的设备的路径名(一般是硬盘上的分区);第二列给出分区包含的数据块(1024 字节)的数目;第三四列分别表示一用的和可用的数据块数目.用户也会感到奇怪的是;第三四列数之和不等于第二列中的数据块.这是因为缺省的每个分区都留了少量空间供系统管理员使用.及时遇到普通用户空间已满的情况,管理员仍能登陆和留有解决问题所需的工作空间.清单 Use%中列表示普通用户空间使用的百分比,及时这一数字达到 100%,分区仍能留有系统管理员使用的空间;最后 Mount on 列表示文件系统的挂载点.

$df -i  
Filesystem     Inodes IUsed  IFree IUse% Mounted on  
/dev/sda3       65536  6410  59126   10% /  
tmpfs          240304     1 240303    1% /dev/shm  
/dev/sda1       51200    39  51161    1% /boot  
/dev/sda7      903984    86 903898    1% /home  
/dev/sda2      198400 57886 140514   30% /usr  
/dev/sda5       65536  2356  63180    4% /var  
/dev/sdb1      131648    11 131637    1% /disk1  

分析:以 inode 模式来显示磁盘使用情况

$df /home  
Filesystem     1K-blocks   Used Available Use% Mounted on  
/dev/sda7       14219628 166640  13330660   2% /home  

分析:显示指定类型磁盘

du 命令

du 命令也是查看使用空间的,但是与 df 命令不同的是 du 命令是对文件和目录磁盘使用的空间的查看,还是和 df 命令有一些区别的.
du 命令详解
语法:
du [选项] [文件]
用途:显示一个或多个目录树的空间使用率
主要选项:
-k
空间的显示,以 KB 为单位,而非(与系统相依的)块(block)
-s
为每个参数,仅显示单行摘要

行为:
du 会针对每个文件或目录参数----如果无提供这类参数则为当前目录,产生一个输出行,其会包含以整数表示的使用率,并接着文件或目录的名称.除非给定-s 选项,否则每个目录参数会以递归方式查找,为每个嵌套目录产生一个报告行.

案例:

$du       #在 tmp 目录下使用 du 命令  
4       ./.ICE-unix  
8       .  

分析:只显示当前目录下面的子目录的目录大小和大钱目录的总大小,最下面的 8 为当前目录的总大小.注意,只显示目录的.

案例:显示指定文件所占空间的大小

$du /etc/passwd  
4       /etc/passwd  

案例:查看指定目录的所占空间

$du /root  
8       /root/.w3m  
4       /root/.pki/nssdb  
8       /root/.pki  
200     /root  

案例:显示多个文件所占大小

$du /tmp /root  
4       /tmp/ert  
4       /tmp/.ICE-unix  
12      /tmp  
8       /root/.w3m  
4       /root/.pki/nssdb  
8       /root/.pki  
200     /root  

案例:只显示总和的大小

$du -s /root  
200     /root  

案例:方便阅读的格式

$du -hs /root  
200K    /root  

案例:文件和目录都显示
du -ah /root

案例:显示多个文件或目录各自占用磁盘空间的大小.还统计他们的总和

$du -cs /etc /tmp /root  
28048   /etc  
12      /tmp  
200     /root  
28260   总用量  

案例:按照空间大小排序
$du /etc| sort -nr | more

du 和 df 的区别
df 命令用于查看文件系统的使用情况;
使用 df 命令输出信息的第一个标注:
文件系统 1K-块 已用 可用 已用% 挂载点
du 命令用于查看文件或目录所占磁盘空间的使用情况.

上一篇: xargs 下一篇: 文件比较 cmp,di...