如果你想显示当前目录中的所有目录:
$ du -sh */
788K foo/
500K bar/
931K baz/
要显示从另一个目录开始的目录:
$ du -sh /path/to/dir/*/
48K /path/to/dir/dir1/
4.0K /path/to/dir/dir2/
6.7M /path/to/dir/dir3/
20K /path/to/dir/dir4/
8.0K /path/to/dir/dir5/
44K /path/to/dir/dir6/
如果你想确保以点开头的目录被包含在内,请先做shopt -s dotglob
。
du -h --max-depth=1 .
&001
将列出当前文件夹下的所有目录和文件的大小。
试试:
$ du -s ./f1
或
$ du -sh ./f1
,以获得更友好的可读尺寸。
$ du --max-depth=1 /var/www/ | sort -n -r
值得一提的是NCurses Disk Usage shell命令。
Ncdu是一个带有ncurses界面的磁盘使用情况分析器。它的目的是为了在远程服务器上寻找空间占用者,在没有整个图形化设置的情况下,即使在普通的桌面系统上也是一个有用的工具。Ncdu的目标是快速、简单、易用,应该可以在任何安装了ncurses的类似POSIX的环境中运行。
下面是一个POSIX脚本,它可以与以下内容一起工作:
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'
源在Mac上,你可以用Homebrew(du
)安装GNU(Linux)的实现。然后,例如
gdu folder -shL --exclude=.git
其中
- brew install coreutils
是给gdu
的GNU实现的名称 (默认情况下,Homebrew不会隐藏du
);
- /usr/bin/du
会产生指定文件夹的总和 (如果你想看明细表,请省略);
- s
会输出人类可读的大小;
- h
会按照symlinks的方式进行操作;
L
会在指定文件夹中排除git目录 (这只是一个例子)。你可以通过添加--exclude=.git
来忽略更多的文件夹。你也可以同时指定多个文件夹(即--exclude=blah
),在这种情况下,你可以使用选项gdu folder1 folder2 ...
将所有的子文件夹合并成一个大小。