是否有一个简单的命令来显示目录(文件夹)中所有文件的总大小(磁盘使用情况)?
我已经尝试过这些,但是他们没有做到我想要的:
ls -l
,它仅显示目录中单个文件的大小,也不显示df -h
,仅显示磁盘上的可用空间和已用空间。
是否有一个简单的命令来显示目录(文件夹)中所有文件的总大小(磁盘使用情况)?
我已经尝试过这些,但是他们没有做到我想要的:
ls -l
,它仅显示目录中单个文件的大小,也不显示 df -h
,仅显示磁盘上的可用空间和已用空间。Answers:
命令du
“以递归方式总结目录中每个文件的磁盘使用情况”,例如,
du -hs /path/to/directory
-h
是获取数字“人类可读”,例如,获取140M
而不是143260
(以KB为单位)-s
为总结(否则你会得到的不仅仅是该文件夹的大小,同时也为所有在该文件夹分开)使用时,-h
您可以使用以下命令对人类可读的值进行排序
du -h | sort -h
该-h
旗sort
将考虑“人类可读的”大小值。
如果要避免递归列出所有文件和目录,则可以提供--max-depth
参数以限制显示多少个项目。最常见的,--max-depth=1
du -h --max-depth=1 /path/to/directory
du -sh
DOOSH来记住它(注意:命令是相同的,只是出于记忆目的而组织命令行标志)
du -hs *
最大的目录,发现哪些文件太大...这是一个好方法,最好的部分是您无需安装任何东西!当之无愧的是我的赞扬
du
具有一些特殊的舍入,如果值在所选单位中具有多个位数,则不显示小数),以及经典的1024 vs. 1000前缀问题。du
有一个选项-B
(或--block-size
)来更改显示值的单位,或者您可以使用-b
而不是-h
获取“原始”值(以字节为单位)。
最近,我发现了一个很棒的基于ncurses的交互式工具,可以快速为您提供有关目录大小的概述。多年来一直在寻找这种工具。
将其视为命令行中的baobab:
apt-get install ncdu
ncdu
太棒了!安装后,只需执行此操作ncdu /
。您将很快找到系统上最大的文件。同时按下h
而内ncdu的控制台界面。它具有非常有用的快捷方式
tree
是这项工作的另一个有用命令:
只需通过安装sudo apt-get install tree
并输入以下内容:
tree --du -h /path/to/directory
...
...
33.7M used in 0 directories, 25 files
从人树:
-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
------------------------------------------------------------
-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
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
--si
选项:“像-h,但使用1000的幂而不是1024”
我认为最好的是以下几种:
du -h directory_name | tail -n1
这只会显示您感兴趣的目录的大小,而不会显示该目录中任何目录和文件的大小。
我应该补充一点,如果文件夹的大小很大,那么du需要更长的时间。您必须耐心等待此命令生效。就像任何其他unix命令一样,您可以通过time
在此命令之前使用来找出该过程的总时间:
time du -h directory_name | tail -n1
du
对此有一个选择:-s