Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22362
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 47
  • 用 户 组: 普通用户
  • 注册时间: 2015-06-29 16:09
文章分类
文章存档

2015年(4)

我的朋友

分类: LINUX

2015-08-05 20:32:48

关于df与du,工作中经常会使用到,现对其做一个相关总结

1. 如何记忆这两个命令

du-Disk Usage

df-Disk Free

2.工作原理
2.1 df命令
指令 df 可以显示目前所有档案系统的最大可用空间及使用情形
例如:
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        94G  4.3G   85G   5% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            1.9G  4.0K  1.9G   1% /dev
tmpfs           387M  1.3M  386M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.9G   80K  1.9G   1% /run/shm
none            100M   40K  100M   1% /run/user
/dev/sda2       976M  3.4M  972M   1% /boot/efi
/dev/sda4       815G  287G  487G  38% /home


其中参数-h表示的是[Human-readable]的输出,也即用GB、MB等易读的格式来表示档案系统大小。

解释一下上面指令输出的各个字段:
第一个字段:表示档案系统
第二个字段:表示该分割区的容量
第三个字段:表示已使用的大小
第四个字段:表示剩下的大小
第五个字段:表示使用的百分比
第六个字段:表示挂入点
其中/dev/sda1 就是挂接在根目录下。

2.2 du
命令
指令du用来查询档案或目录的磁盘使用空间
例如:
# du -h /etc
4.0K /etc/libpaper.d
8.0K /etc/lightdm
156K /etc/console-setup
8.0K /etc/depmod.d
28K /etc/skel
8.0K /etc/rc0.d
8.0K /etc/doc-base/documents
12K /etc/doc-base
4.0K /etc/dpkg/dpkg.cfg.d
12K /etc/dpkg/origins
24K /etc/dpkg
32K /etc/bluetooth
8.0K /etc/NetworkManager/dispatcher.d
4.0K /etc/NetworkManager/system-connections
8.0K /etc/NetworkManager/VPN
4.0K /etc/NetworkManager/dnsmasq.d
32K /etc/NetworkManager
........
13M /etc
使用du -h可以清楚的看到哪个目录占用最多的空间,由于du -h的输出结果通常很长,所以一般就加上-s参数来省略指定目录下的子目录,而只显示该目录
的总和即可。

例如:
# du -sh
13M /etc

另外:在查看目录的时候,可以将输出结果用sort指令来进行排序,以方便清楚的看到各个目录的占用情况:
du /etc | sort -nr | more  
12544 /etc
3920 /etc/brltty
1508 /etc/apparmor.d
944 /etc/apparmor.d/cache
880 /etc/ssl
860 /etc/ssl/certs
484 /etc/X11
428 /etc/init
408 /etc/fonts
380 /etc/fonts/conf.avail
380 /etc/apparmor.d/abstractions
332 /etc/sane.d
288 /etc/ssh
244 /etc/X11/app-defaults
236 /etc/init.d
208 /etc/xdg
188 /etc/dbus-1
172 /etc/dbus-1/system.d
156 /etc/console-setup
152 /etc/default
144 /etc/xdg/autostart
132 /etc/bash_completion.d
108 /etc/pam.d
104 /etc/ppp
96 /etc/speech-dispatcher
96 /etc/apt
--More--
其中sort的参数-nr表示要以数字排序法进行反向排序。

3.du 与 df 不一致的情况
经常会发现du 和 df 的输出结果不一致,这种情况通常是文件删除的问题,当一个文件被删除后,在文件系统 目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除, 分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。

阅读(1062) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~