问题描述
是否有一个简单的命令来显示目录(文件夹)中所有文件的总聚合大小(磁盘使用情况)?
我已经尝试过这些,他们没有做我想做的事情:
-
ls -l
,它只显示目录中单个文件的大小,也不显示 -
df -h
,它只显示磁盘上的空闲空间和已用空间。
最佳解决方案
命令du
“以目录递归方式总结每个FILE的磁盘使用情况”,例如,
du -hs /path/to/directory
-
-h
将获得数字”human readable”,例如,获取140M
而不是143260
(以千字节为单位的大小) -
-s
用于摘要(否则,您将不仅获得文件夹的大小,还会分别获取文件夹中的所有内容)
次佳解决方案
最近我发现了一个很好的,基于ncurses的交互式工具,它可以快速给你一个关于目录大小的概述。多年来一直在搜索这种工具。
-
通过文件层次结构快速钻取
-
您可以删除例如来自工具内的大量临时文件
-
非常快
将它看作命令行的baobab:
apt-get install ncdu
第三种解决方案
这会递归地查找大小,并将其放在每个文件夹名称的旁边,以及底部的总大小,全部以人类格式显示
du -hsc *
第四种方案
请享用!
du foldername
有关该命令here的更多信息
第五种方案
tree
是这项工作的另一个有用的命令:
只需通过sudo apt-get install tree
安装并键入以下内容:
tree --du -h /path/to/directory
...
...
33.7M used in 0 directories, 25 files
来自man tree:
-h Print the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).
--du For each directory report its size as the accumulation of sizes of all its files and sub-directories
(and their files, and so on). The total amount of used space is also given in the final report (like
the 'du -c' command.)
第六种方案
以下是我用于打印总文件夹,文件夹和文件大小的内容:
$ du -sch /home/vivek/* | sort -rh
Details
------------------------------------------------------------
-c, --total
produce a grand total
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
-s, --summarize
display only a total for each argument
-------------------------------------------------------------
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
-r, --reverse
reverse the result of comparisons
Output
70M total
69M /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
52K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
第七种方案
答案显而易见,du
是查找目录总大小的工具。但是,有几个因素需要考虑:
-
偶尔,
du
输出可能会产生误导,因为它会报告文件系统分配的空间,这可能与单个文件大小的总和不同。通常,文件系统将为文件分配4096个字节,即使您只存储了一个字符也是如此! -
由于2的功率和10个单位的功率而导致的输出差异。
-h
切换到du
将字节数除以2^10(1024),2^20(1048576)等,以提供人类可读的输出。许多人可能更习惯于看到10的权力(例如1K = 1000,1M = 1000000),并对结果感到惊讶。
要查找目录中所有文件大小的总和(以字节为单位),请执行下列操作:
find <dir> -ls | awk '{sum += $7} END {print sum}'
例:
$ du -s -B 1
255729664
$ find . -ls | awk '{sum += $7} END {print sum}'
249008169