我想以列表格式获取目录及其大小的列表,例如执行时的方式ls -l
。
事实是,有一个单行命令可以做到这一点吗?我看到其他人只有很长的命令才能输出此命令。那太长了。
什么命令可以执行此操作或可以轻松键入的命令组合?du -h
给它,但它显示所有子文件夹,这不是我想要的。仅当前目录文件夹。
我想以列表格式获取目录及其大小的列表,例如执行时的方式ls -l
。
事实是,有一个单行命令可以做到这一点吗?我看到其他人只有很长的命令才能输出此命令。那太长了。
什么命令可以执行此操作或可以轻松键入的命令组合?du -h
给它,但它显示所有子文件夹,这不是我想要的。仅当前目录文件夹。
Answers:
尝试这个
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
在输出中包括符号链接,但不包括隐藏项(其名称以点开头)。它还缺少当前工作目录的总大小,因为它没有作为参数传递。
--depth
无法识别该参数。使用du -h -d 1
了相同的结果。
打印磁盘上所有文件文件夹和隐藏文件的大小:
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
值得一提的是“ NCurses磁盘使用率” shell命令。
Ncdu是具有ncurses接口的磁盘使用情况分析器。它旨在在没有完整图形设置可用的远程服务器上查找太空猪,但即使在常规台式机系统上,它也是一个有用的工具。Ncdu旨在快速,简单和易于使用,并且应该能够在安装了ncurses的任何最小的POSIX类似环境中运行。
bash: /run/current-system/sw/bin/du: Argument list too long