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