本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程、网络技术、Linux内核及实操、容器技术等。欢迎大家关注,二维码文末可以扫。
1 df简介
df命令用于统计当前linux系统的文件系统磁盘使用情况,包括磁盘总容量、已使用容量和剩余容量等。df通过文件系统快速获取空间大小,在计算大小时,可能会把已被删除的文件大小算进来,也就是说,我们看到的结果可能包含了已被删除的文件大小(后期OS会根据规则进行释放)。
1.1 命令格式
df [option] [file or directory]
1.2 df常用option
option | 说明 |
-a | 显示所有文件系统磁盘使用情况,包括系统特有的/proc、/sysfs等文件系统 |
-k | 以KB为单位显示容量,默认以KB为单位(如果环境变量 POSIXLY_CORRECT被指定,那么将以512字节为单位) |
-m | 以MB为单位显示容量 |
-h | 以更易懂的方式显示磁盘使用情况 |
-i | 以inode模式显示磁盘使用情况 |
-t<文件系统类型> | 只显示选定的文件系统的磁盘信息 |
1.3 df示例
1)显示当前系统的普通文件磁盘使用情况(系统特有文件系统除外)
root@LTY:/opt # df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 14605236 0 14605236 0% /dev
tmpfs 14649972 0 14649972 0% /dev/shm
tmpfs 14649972 224168 14425804 2% /run
tmpfs 14649972 0 14649972 0% /sys/fs/cgroup
/dev/vda2 38956384 4204700 32743108 12% /
tmpfs 14649972 36 14649936 1% /tmp
/dev/vda1 2093048 6596 2086452 1% /boot/efi
tmpfs 2929992 0 2929992 0% /run/user/0
说明:已使用容量 + 可用容量不一定等于总容量(分区可能预留少量空间给管理员使用,即便磁盘使用率已达到100%,管理员仍能登陆并解决问题)
列数 | 说明 |
第一列 | 文件系统对应的设备文件路径名 |
第二列 | 总容量 |
第三列 | 已使用容量 |
第四列 | 可用容量 |
第五列 | 普通用户已使用磁盘比例 |
第六列 | 文件系统挂载点 |
2)以更易懂的方式显示当前系统磁盘使用情况(通常使用GB或MB为单位显示磁盘使用结果)
root@LTY:/opt # df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 14G 0 14G 0% /dev
tmpfs 14G 0 14G 0% /dev/shm
tmpfs 14G 219M 14G 2% /run
/dev/vda2 38G 4.1G 32G 12% /
tmpfs 14G 36K 14G 1% /tmp
/dev/vda1 2.0G 6.5M 2.0G 1% /boot/efi
tmpfs 2.8G 0 2.8G 0% /run/user/0
3)显示当前文件系统所有的磁盘使用情况(部分文件系统数据是存放在内存,而非磁盘,因此占据的磁盘容量为0)
root@LTY:/opt # df-ah
Filesystem Size Used Avail Use% Mounted on
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
devtmpfs 14G 0 14G 0% /dev
tmpfs 14G 0 14G 0% /dev/shm
devpts 0 0 0 - /dev/pts
tmpfs 14G 219M 14G 2% /run
/dev/vda2 38G 4.1G 32G 12% /
mqueue 0 0 0 - /dev/mqueue
hugetlbfs 0 0 0 - /dev/hugepages
tmpfs 14G 36K 14G 1% /tmp
/dev/vda1 2.0G 6.5M 2.0G 1% /boot/efi
tmpfs 2.8G 0 2.8G 0% /run/user/0
4)显示/tmp目录所在分区的磁盘使用情况(df命令会自动分析指定目录所在的分区)
root@LTY:/opt # df-h /tmp
Filesystem Size Used Avail Use% Mounted on
tmpfs 14G 36K 14G 1% /tmp
2 du简介
du命令用于显示目录或文件所占用的磁盘大小。du仅对它认为已存在的文件大小进行累加得出磁盘占用大小,而df则通过文件系统快速获取空间大小,在计算大小时,可能会把已被删除的文件大小算进来(当删除某文件时,该文件不会马上在文件系统消失,后期OS会根据规则进行释放)。
2.1 命令格式
du [option] [file or directory]
2.2 du常用option
option | 说明 |
-h | 以更易懂的方式显示结果 |
-s | 只显示目录占用的磁盘空间 |
-c | 显示目录或文件占用的磁盘空间,并统计总量 |
-a | 除显示目录占用的磁盘空间外,还将该目录下的文件和子目录占用的磁盘空间进行显示 |
-k | 以KB为单位显示容量 |
-m | 以MB为单位显示容量 |
说明:显示的单位默认是KB,但是还有很多方式可以修改显示的单位,比如使用-B选项,修改显示单位,或设置DU_BLOCK_SIZE环境变量,修改显示单位,详细内容请执行man du进行查询了解。
2.3 du示例
1)显示当前目录的磁盘占用大小(默认单位为KB)
root@LTY:/opt # du-s .
12 .
2)以更易懂的方式显示当前目录的磁盘占用大小(通常使用GB或MB为单位显示磁盘使用结果)
root@LTY:/opt # du-sh .
12K .
3)显示bin和lib目录的磁盘占用大小,并统计其总量
root@LTY:/opt # du-ch bin lib
4.0K bin
4.0K lib
8.0K total
4)显示当前目录的磁盘占用大小,并将其子目录和该目录下的文件(如果有)占用的磁盘大小也显示出来
root@LTY:/opt # du-a .
4 ./lib
4 ./bin
12 .
5)显示/opt当前目录和第一级子目录和文件(如果有)的磁盘占用大小(文件夹是可以嵌套的,如果我们不希望du统计的层次太深,可以使用--max-depth选项进行控制)
root@LTY:/opt # du--max-depth=1 -h /opt
12K /opt/test1
58M /opt/test2
58M /opt
我的公众号「码农之屋」(id: Spider1818) ,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。