du -sh ./* 将非空文件夹返回为 0 字节

du -sh ./* 将非空文件夹返回为 0 字节

过去,如果我想查看当前目录中所有文件夹的大小,我会使用以下命令:

杜 -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 /一下。

相关内容