![如何递归列出子目录及其大小?](https://linux22.com/image/188705/%E5%A6%82%E4%BD%95%E9%80%92%E5%BD%92%E5%88%97%E5%87%BA%E5%AD%90%E7%9B%AE%E5%BD%95%E5%8F%8A%E5%85%B6%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
我有一个目录,其中包含许多子目录和许多文件。我所需要的只是计算出每个子目录占用了多少空间。所以我需要类似的东西ls -lR
,我想看到整个目录结构一直到每个叶子,但我不需要看到单个文件。相反,我想查看每个子目录占用多少空间。例如,如果我有一个目录,其中root
(i) 大小为 1MB 的子目录foo
,(ii) bar
2MB 的子目录以及一堆总共占用另外 1MB 的文件,我希望看到 4MB root
、 1MBfoo
和 2MB bar
。
答案1
就是这样du
。考虑这个示例目录结构,它与您在问题中描述的内容相匹配:
$ tree -h root
root
├── [4.0K] bar
│ └── [2.0M] file
├── [256K] file1
├── [256K] file2
├── [256K] file3
├── [256K] file4
└── [4.0K] foo
└── [1.0M] file
2 directories, 6 files
如果我现在运行du
它,我将得到你想要的输出:
$ du -h root
2.1M root/bar
1.1M root/foo
4.1M root