如何计算目录的大小?


Answers:


230
du -s directory_name

或获得人类可读的输出:

du -sh directory_name

-s选项意味着它将不会列出每个子目录的大小,而只会列出总大小。


7
实际上,du根据POSIX,默认的单位是512字节的块,在Linux上(除非POSIXLY_CORRECT设置了环境变量)或使用,其默认单位是千字节du -k
吉尔斯(Gilles)2010年

3
@吉尔斯:好收获。我从答案中删除了“字节数”位。
sepp2k

1
按规定工作
斯基达登2015年

1
如果目录很大并且有很多子目录,则需要花费很多时间……差不多1分钟..那正常吗?有没有办法使尺寸更快?
yeahman

2
我需要计算文件夹“ bag”的大小,du -sh bag完美运行!
安东尼奥·阿尔梅达

7

尽管使用单独的软件包(例如ncdu)可能会很好地工作,但在一定程度上,只需给du列出要放大的文件夹列表,就可以对许多文件夹进行相同的比较。例如比较系统上的顶级目录...

cd /    
sudo du -sh ./*

2
更简单地说,du -sh /*
roaima 2015年



1

尝试

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

这有助于找到较大的目录,然后使用进行筛选 du -sh ./*


0

您还可以使用ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l用于长期上市;-d用于显示目录信息,而不是目录的内容,-h用于以huma可读格式显示大小。


4
这是不正确的,询问的人显然是在寻找目录的内容及其在磁盘上的内容@ sepp2k的答案是正确的。
blong 2012年

1
ls -ldh命令仅显示目录的inode结构的大小。度量标准反映了文件名索引表的大小,而不反映目录中文件内容的实际大小。
linbianxiaocao

0

我总是安装“ ncdu”软件包,并以图形表示形式查看所有目录的所有输出。这是因为我通常需要知道什么占用了我的计算机上最大的磁盘空间,而不管单个目录的总和是多少。

用法:(sudo ncdu /不需要sudo具有读取权限的文件夹)。

扫描整个文件系统上的磁盘使用情况统计信息将花费一些时间。它具有很好的命令行图形表示,并包括使用箭头键的键盘导航,例如在扫描路径中更深或更深。您也可以按删除项目D




0

我已经尝试使用以下命令,因为已经提供了最佳答案

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

输出

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.