如何知道目录的大小?包括子目录和文件。

评论

这回答了你的问题了吗?如何在命令行上获取目录的大小?

#1 楼

du -s directory_name


或获取人类可读的输出:

du -sh directory_name


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

评论


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

–吉尔斯'所以-不再是邪恶的'
2010-10-12 17:49

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

–sepp2k
2010-10-12 17:53

按规定工作

–skidadon
15年5月28日在19:17

如果该目录很大,并且有很多子目录,则需要花费很多时间……将近1分钟。有没有办法使尺寸更快?

–yeahman
2015年10月15日19:59

我需要计算文件夹“ bag”的大小,du -sh bag非常好用!

–安东尼奥·阿尔梅达(AntónioAlmeida)
16 Mar 4 '16 at 12:15

#2 楼

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

cd /    
sudo du -sh ./*


评论


更简单地,du -sh / *

–roaima
2015年9月10日下午17:00

#3 楼

GNU du带有-b选项。

请参阅man页面和info页面以获取更多帮助:

#4 楼

du -hd1

将以人类可读的格式列出所有目录的大小,例如

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config


#5 楼

du -csh


-c产生总计

评论


-c与-s一起使用没有意义,对吧? -s仅显示指定目录的大小,即目录的总大小。

– Andreas Storvik Strauman
18年6月5日在10:43

#6 楼

尝试

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


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

#7 楼

您可以使用awk Velor库中的“ file-size.sh”:

 ls -ARgo "$@" | awk '{q += } END {print q}'
 


评论


这样可以得到比du更准确的计数。在两个服务器上解压缩tarball并使用“ du -s”(带或不带--bytes),您可能会看到不同的总数,但是使用此技术,总数将匹配。

–安吉洛·巴布德罗(Angelo Babudro)
19年11月18日23:52

#8 楼

您还可以使用ls -ldh:

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

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

评论


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

–blong
2012年6月5日13:16



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

–林边小草
16年3月28日在18:19

#9 楼

我总是安装“ ncdu”软件包,并以图形方式查看所有目录的所有输出。总结。

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

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

#10 楼

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

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


输出

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

679445


#11 楼

最初的问题询问了大小,但没有指定是磁盘大小还是数据的实际大小。使用相同文件系统的大小分区。如果文件系统特征不同,这是有道理的,但否则我无法弄清楚原因。史蒂文·潘尼(Steven Penny)给出的'ls | awk'答案产生了更一致的答案,但在文件列表很大的情况下仍然给我带来不一致的结果。比较一台使用XFS的服务器和另一台使用EXT4的服务器时,因此,如果您想知道所有文件中数据的总字节数,那么我建议这是一种获取方法: