我想快速检查哪些目录占用了最多的磁盘空间。
我尝试过du -sh subdir
,但在较大的目录上花费了 20 秒以上。
我不确定如何使用此方法一次显示主目录中所有子目录的大小,但恐怕可能需要几分钟......
有没有快速的方法来做到这一点?
我不需要显示文件的大小,只需显示目录。
答案1
样本目录
$ ls -aF
./ ../ .asd/ folder1/ folder2/ list t1 t2 xyz/
要仅查找文件夹的大小(不包括隐藏文件夹):
$ find -type d -name '[!.]*' -exec du -sh {} +
4.0K ./folder1
4.0K ./folder2
8.0K ./xyz
如果您最后还需要总计:
$ find -type d -name '[!.]*' -exec du -ch {} +
4.0K ./folder1
4.0K ./folder2
8.0K ./xyz
16K total
对结果进行排序:
$ find -type d -name '[!.]*' -exec du -sh {} + | sort -h
4.0K ./folder1
4.0K ./folder2
8.0K ./xyz
要反转排序顺序:
$ find -type d -name '[!.]*' -exec du -sh {} + | sort -hr
8.0K ./xyz
4.0K ./folder2
4.0K ./folder1
如果您还需要隐藏目录,请-name '[!.]*'
从 find 命令中删除。我不知道有任何其他命令可以比du
.用于df
file system disk space usage
用于find -maxdepth 1 -type d -name '[!.]*' -exec du -sh {} +
避免显示子文件夹
答案2
使用包ncdu
.你可以通过安装它sudo apt-get install ncdu
。
在服务器上,您可以将其与选项一起使用ncdu -q -x
(安静模式和忽略安装目录)。
Ncdu 与 du/df
ncdu的界面是使用ncurses构建的,并且是交互式的。 Ncdu 与 df 或 du 不同。 Ncdu 只执行报告目录使用的空间并向下钻取的一项任务。另一方面,df 命令报告不同存储设备使用的空间。
所以 ncdu 是一个强大的工具来监视、检查和分析 Linux 系统上的磁盘空间使用情况
答案3
所有文件夹占用相同的空间量,即 4096 字节。您不想知道文件夹的大小,而是想知道其中内容的大小。这需要计数,而计数又需要时间。
du
默认情况下计算目录大小。因此,要获取它的尺寸:
cd && du
或者
du ~
请参阅 参考资料 了解man du
更多选项。
答案4
正如其他人所说,这只是一个缓慢的过程。我们有多用户计算机,最糟糕的是磁盘空间不足并且几个人du
同时启动。因此,我们使用磁盘使用情况的缓存视图(我们每天运行两次)。那里有很多,但从视觉角度来看我最喜欢的是duc
索引是从 cron 作业生成的,如下所示 - 该作业指定索引中的 6 个层次结构
30 5,12 * * * /usr/local/bin/duc index -x -m 6 -d /mydisk/ducdb_1.4.sqlite /mydisk/users >/dev/null 2>&1
然后我们使用Web前端( duc cgi
)来查看索引。它非常光滑且美观。非常感谢作者 Ico Doornekamp 和 John Stoffel