如何列出目录中文件和目录的递归文件大小?


50

如何列出目录中的所有文件及其递归文件大小?

- -编辑

我想看到大小“汇总”到列出目录中的父目录。我不想看到子目录或其内容或大小。


1
您的意思是您想查看文件夹中所有文件的总大小(总和),例如右键单击桌面上的文件夹并选择“属性”?
Pavlos G.

您是否正在寻找可帮助您查找大文件或某种可获取(可折叠)文件树的软件?
Lekensteyn 2011年

@Pavlos G,您好-我的意思是我当前所在目录中每个目录的总和-而不是整个目录的总和。
鹰眼2011年

@JG-检查我的更新;-)
Pavlos G.

Answers:


53

我猜最简单的方法是键入ls -l,否则ls -lh它将以人类可读的格式(KB,MB等)提供文件大小。

如果“递归”表示列出所有后续文件夹,例如:

/ foo /
/ foo / bar /...。

然后,您还应该添加参数R,例如ls -lRls -lhR

ls可以通过键入找到更多信息man ls

更新:

Lekensteyn建议的以下命令可能会完成此任务:

du -h --max-depth=1 <folder>

-h对人类可读的
--apparent-size是另一种显示大小的方法,正如已经说明的那样,这
--max-depth是您要转到的子文件夹的级别。


最大深度使用什么?-1?
dylanh724

61
apt-get install ncdu

在此处输入图片说明

它也是交互式的,因此如果您要检查子文件夹,只需向上,向下,然后按Enter。


正是我想要的。非常感谢你!
Mathlight '16

也许是我获得的最惊人的软件推荐
SomethingSomething

这应该是已批准的答案
dvdmn


17

还检查一下tree。默认情况下未安装它,但它是存储库。

例:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

可以在手册页中找到更多选项。


应该显示尺寸吗?
鹰眼2011年

JG:-s显示大小。
理查德·霍洛威

1
显示目录记录的大小,而不是完整目录的大小。
史蒂文·卢

-h以人类可读的方式显示尺寸,例如tree -s
Eric Wang

15

由于您没有特别提及,您需要基于终端的解决方案,因此我认为该列表中缺少baobab aka磁盘使用分析器。

默认情况下,它已安装在Ubuntu中,并且在具有向下钻取目录层次结构功能的漂亮图形UI中可以完全满足您的要求。

除了显示目录及其大小之外,它还显示文件系统使用情况的环形图或树形图,这对于可视化占用最大空间的目录非常有用。

baobab磁盘使用情况分析器


7

终端溶液du命令:

du --all --human-readable --apparent-size

(简写:du -ah --apparent-size

du显示每个文件和目录的磁盘使用情况。选项说明:

  • --all-a-还显示文件的大小,而不仅仅是目录
  • --human-readable-h-以人类可读的格式显示大小,例如10K(10 KB),10(10字节)
  • --apparent-size -显示实际文件大小,而不是磁盘使用的大小。

我只想要一级孩子
鹰眼2011年

2
您可以使用@hawkeye 1级--max-depth=1
nikoskip 2015年

4
@nikoskip小提示!也很高兴知道速记,--max-depth=1可以简称为-d1
Lekensteyn

如何让所有的这些尺寸的decending秩序..
kRazzy [R

我如何查看内容并清空:/ dev / sda5 ext4 430G 381G 27G 94%/我的笔记本电脑还不到1个月大,而且笔记本电脑已经装满了,没有任何意义
kRazzy R

2

当涉及到simlink时,这似乎可以解决问题。

ls -LRlh

给定的答案没有给我有关simlinks(ls -lhR)的详细信息,它旁边列出的数字也不对应于每个值的正确大小。我的答案给了我一个具有定义的树结构和正确答案的层次结构。
Mulki

Down-vote撤回,upvoted。请编辑并在评论中添加评论...感谢您的解释。 ;-)
Fabby

1

要获得排序列表,请将所有内容都放入MB并进行排序:

du -m * | sort -n

或使用诸如DiskReport之类的工具来生成完整磁盘树的报告。


1

带有find和排序的另一种终端解决方案(按文件大小,第1列)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

这不会显示目录的大小。
muru
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.