如何(非递归地)测量目录中所有(隐藏和非隐藏)文件夹的大小?

如何(非递归地)测量目录中所有(隐藏和非隐藏)文件夹的大小?

somedir我有一个包含两个子目录的父目录.hiddenDirnotHidden.

我想非递归地测量全部中的子目录somedir

我怎样才能在 Unix 中做到这一点?


我想要的图片:

在此输入图像描述

失败的尝试:

以下du基于命令仅返回可见目录:

du -sh *

尽管

du -sh .*

只返回隐藏目录。


我怎样才能返回尺寸全部像图片中的目录?

答案1

使用 GNU du

du -hd1

(它还报告磁盘使用情况,.其中子目录报告的磁盘使用情况以及当前目录中非目录文件的磁盘使用情况之和)。

zsh和 任何du:

du -sk -- *(/D)

(以千字节为单位)。

无论如何,虽然这不会报告深度2或以下目录及其内容的磁盘使用情况,但这些目录的磁盘使用情况仍然包含在顶级目录报告的磁盘使用情况中(换句话说,有递归)。

这就是它的潜在意义之一尺寸一个目录的。换句话说,如果要删除该目录及其内容,这就是将回收的磁盘空间(假设这些文件在这些目录之外没有硬链接,并且它们的数据没有在外部的其他文件中引用(可能是部分)这些目录),请注意,它通常与 报告的文件本身(包括目录文件)的表观大小总和不同ls -l

答案2

Du 接受多个参数 - 事实上,* 在传递给 du 之前已由 shell 扩展。这就是您需要做的全部。

du -sh * .??*

注意,这将丢失以单个字符命名的文件或目录.- 例如,名为.a.

.??*用于跳过...,它们是当前目录和父目录的链接。

相关内容