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. 使用df的file system disk space usage
使用find -maxdepth 1 -type d -name '[!.]*' -exec du -sh {} +以避免子文件夹显示出来
使用包ncdu. 你可以通过安装它sudo apt-get install ncdu。
在服务器上,您可以将其与选项一起使用ncdu -q -x(安静模式和忽略安装目录)。
Ncdu 与 du/df
ncdu的界面是使用ncurses构建的,并且是交互式的。Ncdu 与 df 或 du 不同。Ncdu 只执行报告目录使用的空间并向下钻取的一项任务。另一方面,df 命令报告不同存储设备使用的空间。
所以 ncdu 是一个强大的工具来监视、检查和分析 Linux 系统上的磁盘空间使用情况