it-swarm.cn

如何从命令行确定目录(文件夹)的总大小?

是否有一个简单的命令来显示目录(文件夹)中所有文件的总聚合大小(磁盘使用情况)?

我尝试过这些,他们没有做我想做的事:

  • ls -l,它只显示目录中单个文件的大小
  • df -h,仅显示磁盘上的空闲和已用空间。
755
David Barry

命令du“以递归方式为目录汇总每个FILE的磁盘使用情况”,例如,

du -hs /path/to/directory
  • -h是为了获得“人类可读”的数字,例如获取140M而不是143260(大小以KB为单位)
  • -s用于汇总(否则你不仅会获得文件夹的大小,而且还会获得所有内容in单独的文件夹)

当您使用-h时,您可以使用人类可读值进行排序

du -h | sort -h

sort上的-h标志将考虑“人类可读”大小值。


如果要避免递归列出所有文件和目录,可以提供--max-depth参数来限制显示的项目数。最常见的是--max-depth=1

du -h --max-depth=1 /path/to/directory
1211
Marcel Stimberg

最近我发现了一个很棒的基于ncurses的交互式工具,可以快速为您提供有关目录大小的概述。多年来一直在搜索这种工具。

  • 快速浏览文件层次结构
  • 你可以删除,例如来自工具内部的巨大临时文件
  • 非常快

将其视为 baobab 命令行:

apt-get install ncdu
158
geekQ

这会以递归方式查找大小,并将其放在每个文件夹名称旁边,以及底部的总大小,所有这些都是人类格式

du -hsc *
51
Brad

请享用!

du foldername

关于该命令的更多信息 这里

16
myusuf3

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.)
11
αғsнιη

以下是我用来打印总数,文件夹和文件大小的内容:

$ 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
9
vivekyad4v

答案很明显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
4
pdp

对于只有可读格式的目录大小,请使用以下内容:

du -hs directoryname

这可能不在正确的部分,但从命令行,您可以尝试:

ls -sh filename

-s是大小,-h是人类可读的。

使用-l显示ls列表,如下所示:

ls -shl
1
Shiv Singh

du /foldername是了解文件夹大小的标准命令。最佳做法是通过阅读手册页找到选项:

man du

在使用命令之前,您应该阅读手册页(可用 在线 )。

0
Balaswamy vaddeman

这是一个POSIX脚本,可以使用:

  • 一份文件
  • 一个目录
  • 目录
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

来源

0
Steven Penny

如果所需目录有许多子目录,请使用以下命令:

$ cd ~/your/target/directory
$ du -csh 

-c, - total产生总计
- s, - summarize只显示每个参数的总数
- h, - 人类可读格式的人类可读打印尺寸(例如,1K 234M 2G)

然后,它将产生当前目录中所有文件/文件夹的总内存使用量。

0
kmario23