有时候我们需要统计目录的大小,特别是在嵌入式设备上,空间比较紧张,要找出占据存储空间较大的目录进行清理。ls -al查看到的并非目录的真实大小,du命令则可以。

常用选项:

-d 显示的子目录层次,默认0,0的话就表示只显示目录的总大小,1表示还会递归的显示顶层子目录的大小
-h 大小智能的以K,M,G显示
-s 相当于-d=0,只显示当前目录的总大小,-s和-d一起用会冲突,除非是-d 0。
-a 文件也显示,默认只显示目录

示例:
1、查看当前目录下的一级子目录的大小

$ du -h -d 1
83M     ./bin
6.3M    ./include
66M     ./lib
74M     ./libexec
13M     ./mingw32
496K    ./share
43M     ./var
284M    .

2、查看当前目录大小

$ du -sh
284M    .

# 也可以直接指定目录,不指定目录的话统计的是当前目录
$ du -sh MINGW
284M    MINGW

3、查看当前目录一级子目录总大小

victory@victory-ThinkPad-T490:~$ du -sh *
28K	aa
12K	a.out
4.0K	awk.script
4.0K	awk.txt

4、借助sort命令排序,找出占用最大的目录或者文件

victory@victory-ThinkPad-T490:~$ du -s * | sort -rn
21965124	Downloads
18792	bin
18120	FlameGraph
7904	snap
2044	perf.data
828	Pictures
716	perf.data.old
684	libexec
672	cmake

特意不加h选项,是因为h会人性化显示,导致sort进行排序时出错。例如可能会算出21G比21K小。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐