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

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

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

我已经尝试过这些,但它们并没有达到我想要的效果:

  • ls -l,它只显示目录中各个文件的大小,也不
  • df -h,它仅显示我的磁盘上的可用空间和已用空间。

答案1

该命令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

答案2

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

  • 快速深入查看文件层次结构
  • 您可以从工具内部删除巨大的临时文件
  • 非常快

想象一下猴面包树对于命令行:

apt-get install ncdu

编辑:您可以将搜索限制在同一文件系统中的文件,使用-x

ncdu -x /

这将忽略根文件系统所在位置之外的其他已挂载文件系统。

稍微优化一下,使用 '-q' 选项来增加屏幕更新间隔时间。这些选项可以组合使用:

ncdu -xq /var

一如既往,man ncdu建议阅读。

答案3

这将以递归方式查找大小并将其放在每个文件夹名称旁边,以及底部的总大小,全部采用人类格式

du -hsc *

答案4

享受!

du foldername

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

相关内容