问题描述
如何列出目录中的所有文件及其递归文件大小?
– -编辑
我想看到’rolled up’的大小到列出的目录中的父目录。我不想看到子目录或其内容或大小。
最佳解决方案
我想最简单的方法是键入ls -l
或ls -lh
,它将以human-readable格式(KB,MB等)提供文件大小。
如果’recursively’表示列出所有后续文件夹,例如:
/foo //foo /bar /….
然后你还应该添加参数R
,如ls -lR
或ls -lhR
通过输入man ls
可以找到有关ls
的更多信息
更新:
Lekensteyn提出的以下命令可能会完成这项工作:
du -h --max-depth=1 <folder>
-h
适用于human-readable --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
可以在手册页中找到更多选项。
第五种方案
由于您没有特别提及您需要terminal-based解决方案,我认为列表中缺少baobab a.k.a.磁盘使用率分析器。
默认情况下,它安装在Ubuntu中,可以在一个漂亮的图形用户界面中完成您想要的功能,并能够深入查看目录层次结构。
除了显示带有大小的目录列表外,它还显示了文件系统使用的环形或树形图,这对于可视化占用最多空间的目录非常有用。
第六种方案
terminal solution是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