用终端列出当前文件夹文件夹的大小?

kev*_*vin 174 unix terminal command-line

我想要一个当前目录中的文件夹列表或我指定的文件夹列表。

我试过 du 但我只得到我指定的目录的大小 (du . ./f1),而 ls 没有显示文件夹的大小。

如何在没有任何脚本的情况下执行此操作?

Den*_*son 270

如果要显示当前目录中的所有目录:

$ du -sh */
788K    foo/
500K    bar/
931K    baz/
Run Code Online (Sandbox Code Playgroud)

要从另一个目录开始显示它们:

$ 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/
Run Code Online (Sandbox Code Playgroud)

如果要确保包含名称以点开头的目录,请先执行shopt -s dotglob

  • 按大小排序文件夹:`du -s */ | 排序-n`。 (7认同)
  • @AntonTarasenko:[排序人类可读的大小](/sf/ask/364930191/#5213618) (3认同)
  • `-n` 不能正确排序使用 `du -sh */ | sort -hr` 代替 (3认同)
  • 其中 -s 表示汇总,显示总数, -h 表示人类可读 (2认同)
  • @AntonTarasenko:`shopt -s dotglob` [doc](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html) (2认同)

小智 23

在 Mac 上,-d [depth] 取代了 --max-depth 选项。因此,要查看您的根驱动器的可读列表以及 2 级深度,请使用以下内容:

du -hd 2 /* 
Run Code Online (Sandbox Code Playgroud)

注意:此命令将暴露根目录的前两个目录级别。 这包括遍历一个级别到您的 Volumes,并将列出每个附加卷中每个顶级目录的摘要大小。根据您附加的内容,此命令可能需要一些时间才能完成。


mat*_*ull 17

另一种方法是 --max-depth 选项。

du -h --max-depth=1 .
Run Code Online (Sandbox Code Playgroud)

将列出当前文件夹下的所有目录和文件的大小。

Depth 2 会再列出一层文件夹。

  • 在 Mac 上,它是 `du -hd 2 .` 用于 2 个深度级别。 (5认同)

Dou*_*ris 6

尝试:

$ du -s ./f1
Run Code Online (Sandbox Code Playgroud)

或者

$ du -sh ./f1
Run Code Online (Sandbox Code Playgroud)

以获得更友好的可读尺寸。


小智 6

建立在公认的答案,这个命令会显示在目录中的文件夹的大小,并且也将大小为您解读更容易一一列举:

$ du -sh */ | sort -rn
Run Code Online (Sandbox Code Playgroud)