..

du命令的使用

介绍

du 是 “disk usage” 的缩写。用来统计文件所占用的磁盘空间,一般在清理磁盘空间的时候需要用到。

用例

# du的默认行为是遍历整个文件目录树,这样列出来的结果太多了,一般不是我们预期的。
# 所以我们一般会加两个参数:
#   1. -s 参数,其意为 sum,汇总计算。
#   2. -h 参数,其意为 human-readable,单位换算成G、M、K等方便理解的单位。
# 查看某个文件(夹)占用磁盘空间
$ du -sh ./
5.5G	./

# 清理空间的时候,一般会从根目录一层一层往下看每个目录各个文件大小。 -s 其实不太方面。
# 所以一般会加个 depth=1 参数(缩写为 d1),来看下目标目录各个文件的大小
$ sudo du -hd1 ./
1.1G	./log
4.0K	./local
4.0K	./crash
112K	./snap
4.0K	./mail
154M	./cache
4.0K	./opt
40K	./tmp
4.3G	./lib
40K	./spool
12K	./www
3.7M	./backups
5.5G	./

# 还可以配合 sort 命令进行排序。
# 一般而言,目录下的大文件都比较少。如果这时候文件太多,可以再加个 | head -10 来查看前十的文件
$ sudo du -hd1 ./ | sort -hr
5.5G	./
4.3G	./lib
1.1G	./log
154M	./cache
3.7M	./backups
112K	./snap
40K	./tmp
40K	./spool
12K	./www
4.0K	./opt
4.0K	./mail
4.0K	./local
4.0K	./crash

# 在清理完之后,一般会执行下 df 命令,来看看磁盘的总体剩余空间。看来并没有清理出多少。
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           788M  928K  787M   1% /run
/dev/nvme0n1p1   20G   18G  1.5G  93% /