我想要以列表格式获取目录及其大小的列表,就像您执行 时所获取的一样ls -l
。
问题是,有没有一行命令可以做到这一点?我看到其他人有很长的命令只是为了输出这个。那太长了。
什么命令可以做到这一点或可以轻松输入的命令组合?du -h
给出它,但它显示所有子文件夹,这不是我想要的。只是当前目录文件夹。
答案1
您可能希望查看按大小排序的目录:
$ du -hs * | sort -hr
856M lib
746M share
612M lib64
312M src
267M java
239M bin
179M sbin
173M local
93M i686-w64-mingw32
72M libexec
26M include
20M puppet
772K X11R6
20K man
4.0K games
4.0K etc
0 tmp
答案2
尝试这个
du -h --max-depth=1
输出
oliver@home:/usr$ sudo du -h --max-depth=1
24M ./include
20M ./sbin
228M ./local
4.0K ./src
520M ./lib
8.0K ./games
1.3G ./share
255M ./bin
2.4G .
选择
如果--max-depth=1
对于您的口味来说有点太长,您也可以尝试使用:
du -h -s *
这将使用-s
( --summarize
),默认情况下仅打印文件夹本身的大小。通过传递当前工作目录中的所有元素 ( *
),它会产生类似的输出--max-depth=1
:
输出
oliver@cloud:/usr$ sudo du -h -s *
255M bin
8.0K games
24M include
520M lib
0 lib64
228M local
20M sbin
1.3G share
4.0K src
区别很微妙。前一种方法将显示当前工作目录的总大小以及其中包含的所有文件夹的总大小……但深度最多为 1。
后一种方法将计算所有传递的项目的总大小单独地lib64
。因此,它在输出中包含符号链接,但排除隐藏项(其名称以点开头)。它还缺少当前工作目录的总大小,因为它没有作为参数传递。
答案3
打印磁盘上所有文件夹和隐藏文件的大小:
el@dev /home/el $ du -sh `ls -a`
258M .
265M ..
4.0K .classpath
258M .git
4.0K .gitignore
9.0K nbactions.xml
12K README
20K .README.swp
4.0K run.sh
23K XmlPostPropagate.php
答案4
值得一提的是NCurses 磁盘使用情况shell 命令。
Ncdu 是一款带有 ncurses 界面的磁盘使用情况分析器。它旨在查找远程服务器上占用大量空间的程序,而这些程序没有完整的图形设置,但它即使在常规桌面系统上也是一款有用的工具。Ncdu 的目标是快速、简单且易于使用,并且应该能够在安装了 ncurses 的任何最小 POSIX 类环境中运行。