it-swarm.cn

如何计算目录的大小?

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

189
Juanjo Conti
du -s directory_name

或获得人类可读的输出:

du -sh directory_name

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

245
sepp2k

GNU du-b 选项。

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

-b--bytes等效于--apparent-size --block-size=1

7
user2573436

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

cd /    
Sudo du -sh ./*
7
NFlourish
du -csh

-c产生总计

1
Kalpesh Soni

尝试

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

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

1
rollinjack

您可以使用awk的“ file-size.sh” Velour库

ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
1
Steven Penny

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

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

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

0
Etescartz

du -hd1

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

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

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

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
0
Praveen Kumar BS

最初的问题询问了大小,但未指定是磁盘大小还是数据的实际大小。

我发现,“ du”的计算在使用相同文件系统的相同大小分区的服务器之间可能会有所不同。如果文件系统特征不同,这是有道理的,但否则我无法弄清楚原因。史蒂文·潘尼(Steven Penny)给出的'ls | awk'答案产生了一个更一致的答案,但是在文件列表很大的情况下仍然给我不一致的结果。

即使比较使用XFS的一台服务器和使用EXT4的另一台服务器,使用'find'也可以得到300,000+个文件的一致结果。因此,如果您想知道所有文件中数据的总字节数,那么我建议这是一种获取数据的好方法:

find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
0
Angelo Babudro

您还可以使用ls -ldh:

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

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

0
fromnaboo