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

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

– -编辑

我想看到大小’卷起’到列出的目录中的父目录。 我不想看到子目录或其内容或大小。

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

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

/富/
/ foo / bar / ….

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

输入man ls可以找到有关ls更多信息

更新:

Lekensteyn提出的以下命令可能会完成这项工作:

du -h --max-depth=1

-h是人类可读的
--apparent-size是另一种显示大小的方法, --apparent-size
--max-depth是您想要归结到的子文件夹的级别。

 apt-get install ncdu 

在此处输入图像描述

它也是交互式的,所以如果你想检查子文件夹只是UP,DOWN和Enter。

获取目录和所有子项的总大小

 du -hs directory/* 

还可以看看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 

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

由于您没有特别提及您需要基于终端的解决方案,我认为列表中缺少baobab aka Disk Usage Analyzer。

默认情况下,它安装在Ubuntu中,并且可以在一个漂亮的图形UI中完成您想要的function,并且能够深入查看目录层次结构。

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

baobab磁盘使用分析器

终端解决方案是du命令:

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

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

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

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

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

 ls -LRlh 

要获取排序列表,请将所有内容放入MB并排序:

 du -m * | sort -n 

或者使用DiskReport等工具生成完整磁盘树的报告。

另一个带有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