显示目录中每个子目录大小的快速方法

sta*_*cko 13 command-line disk-usage

我想快速检查哪些目录占用了最多的磁盘空间。

我尝试过,du -sh subdir但在更大的目录上花费了 20 多秒。

我不确定如何使用这种方法一次显示主目录中所有子目录的大小,但我担心可能需要几分钟......

有没有快速的方法来做到这一点?

我不需要显示文件的大小,只需要显示目录。

Sun*_*eep 16

示例目录

$ ls -aF
./  ../  .asd/  folder1/  folder2/  list  t1  t2  xyz/
Run Code Online (Sandbox Code Playgroud)

要仅查找文件夹的大小,不包括隐藏文件夹:

$ find -type d -name '[!.]*' -exec du -sh {} + 
4.0K    ./folder1
4.0K    ./folder2
8.0K    ./xyz
Run Code Online (Sandbox Code Playgroud)

如果最后还需要总计:

$ find -type d -name '[!.]*' -exec du -ch {} + 
4.0K    ./folder1
4.0K    ./folder2
8.0K    ./xyz
16K total
Run Code Online (Sandbox Code Playgroud)

对结果进行排序:

$ find -type d -name '[!.]*' -exec du -sh {} + | sort -h
4.0K    ./folder1
4.0K    ./folder2
8.0K    ./xyz
Run Code Online (Sandbox Code Playgroud)

要反转排序顺序:

$ find -type d -name '[!.]*' -exec du -sh {} + | sort -hr
8.0K    ./xyz
4.0K    ./folder2
4.0K    ./folder1
Run Code Online (Sandbox Code Playgroud)

如果您还需要隐藏目录,请-name '[!.]*'从 find 命令中删除。我不知道任何其他命令可以找到比du. 使用dffile system disk space usage

使用find -maxdepth 1 -type d -name '[!.]*' -exec du -sh {} +以避免子文件夹显示出来


Ank*_*yan 6

使用包ncdu. 你可以通过安装它sudo apt-get install ncdu
在服务器上,您可以将其与选项一起使用ncdu -q -x(安静模式和忽略安装目录)。

Ncdu 与 du/df

ncdu的界面是使用ncurses构建的,并且是交互式的。Ncdu 与 df 或 du 不同。Ncdu 只执行报告目录使用的空间并向下钻取的一项任务。另一方面,df 命令报告不同存储设备使用的空间。

所以 ncdu 是一个强大的工具来监视、检查和分析 Linux 系统上的磁盘空间使用情况

  • 这看起来可能有用,但是它比du更快吗? (3认同)