红联Linux门户
Linux帮助

Linux下列出所有子目录及磁盘占用情况

发布时间:2014-10-27 10:22:19来源:linux网站作者:linux人

Linux服务器突然挂了,排查了半天发现磁盘已经100%,真后悔当初没把磁盘设大点,其实可以用LVM调整一下,但是心里还是没底,怕把数据都丢失了,决定以后再调整磁盘分配。目前先吧Jenkins下没用的项目都干掉,可以腾出很多空间。


我们都知道使用du命令可以查看目录,例如查看/home/kuuyee目录占用磁盘空间大小可以使用下面的命令:

linux@www:~# du /home/kuuyee -sh            
2333M    /home/kuuyee


但是有个问题,我的Jenkins目录下有上百个构建项目,一个一个的差看目录占用情况太麻烦了,baidu了一下找到一个办法:

linux@www:~# du /home --max-depth=1 -h
2125M    /home/linux
3333M    /home/kuuyee
4457M    /home

这样的话就吧所有的子目录的磁盘占用情况都列出来了!这里的--max-depth参数代表着要列出目录的深度,如果要列出两级目录就设置为2,以此类推。


如果想吧结果输出到文件里可以这样:

linux@www:~# du /home --max-depth=1 -h > disk_status.txt

下面给出du命令的用法及参数说明:

用法:du [选项]… [文件]…
或:du [选项]… –files0-from=F
总结每个<文件>的磁盘用量,目录则取总用量。


参数含义如下:
-s 对每个Names参数只给出占用的数据块总数。
-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b 以字节为单位列出磁盘空间使用情况(系统缺省以 k 字节为单位)。
-k 以1024字节为单位列出磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省设置)。
-l 计算所有的文件大小。