过去,如果我想查看当前目录中所有文件夹的大小,我会使用以下命令:
杜 -sh ./*
当我在最近的发行版安装(Manjaro)上执行此操作时,它会将 /bin 目录返回为 0。 /bin 中有超过 3000 个子目录,当我从 bin 中执行 du -sh ./* 时,它显示每个子目录都有一个尺寸。
我的 du 命令是否仅显示每个文件夹第一级中的文件大小,而不包括子目录?
答案1
在 Arch Linux 和 Manjaro 等衍生产品上,/bin
是/usr/bin
.符号链接的大小为 0,因此du /bin
报告为 0。
在 的输出中du /*
,下面的文件/bin
被记录在 下/usr
,因为那是它们真正所在的位置 - 在 中/usr/bin
。
如今,磁盘的大小往往比操作系统的大小大得多,因此/usr
(大多数应用程序所在的位置)和/bin
++ /etc
(包含启动系统所需的最少内容)之间的经典区别通常被认为是无关紧要/lib
的/sbin
。这就是为什么一些发行版(例如 Arch)将它们合并并且不再支持/usr
与根分区分离的原因。
答案2
阻止du
输出子文件夹大小的是-s
参数( 的缩写--summarize
),这将使得du
仅输出其参数的大小,而不包括子文件夹。
尝试du -hc /
一下。