df是linux下用来查磁盘空间的命令,应是disk free吧。是个每个人都很熟悉的命令,如:
df -ah
df -aH
df -H
df -i
这都是常用的。
但还有一个参数:-P,下面说一下其用途。
# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 11G 431M 9.5G 5% /
/dev/sda7 31G 199M 29G 1% /data
/dev/sda3 11G 3.2G 6.8G 32% /usr
/dev/sda2 11G 220M 9.7G 3% /var
/dev/sda1 303M 17M 271M 6% /boot
tmpfs 4.3G 0 4.3G 0% /dev/shm
192.168.102.1:/vol/wcm/NewWCMData
1.1T 799G 229G 78% /WCMData
发现最后一个空间换行了!这时如果通过SHELL过滤处理时,会出现麻烦了!
# df -H |grep NewWCMData
192.168.102.1:/vol/wcm/NewWCMData
就是这样,没过滤出这个空间的使用情况。
这时就用上参数:-P了。
# df -HP
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 11G 431M 9.5G 5% /
/dev/sda7 31G 199M 29G 1% /data
/dev/sda3 11G 3.2G 6.8G 32% /usr
/dev/sda2 11G 220M 9.7G 3% /var
/dev/sda1 303M 17M 271M 6% /boot
tmpfs 4.3G 0 4.3G 0% /dev/shm
192.168.102.1:/vol/wcm/NewWCMData 1.1T 799G 229G 78% /WCMData
# df -HP |grep NewWCMData
192.168.102.1:/vol/wcm/NewWCMData 1.1T 799G 229G 78% /WCMData
这样再用awk来处理每n个域的值就没问题了。如取所有空间的Use%:
在没有-P时:
# df -H |awk '{print $1,$5}'
Filesystem Use%
/dev/sda5 5%
/dev/sda7 1%
/dev/sda3 32%
/dev/sda2 3%
/dev/sda1 6%
tmpfs 0%
192.168.102.1:/vol/wcm/NewWCMData
1.1T /WCMData
加上参数-P:
# df -HP |awk '{print $1,$5}'
Filesystem Use%
/dev/sda5 5%
/dev/sda7 1%
/dev/sda3 32%
/dev/sda2 3%
/dev/sda1 6%
tmpfs 0%
192.168.102.1:/vol/wcm/NewWCMData 78%
所以建议大家写SHELL中,涉及此内容,请注意!
-P, --portability use the POSIX output format