关于 du 命令 linux diskusage 的解释

关于 du 命令 linux diskusage 的解释

这两者有什么区别:

du -h --max-depth=2 /usr/* | sort -nr | head -n 20

和:

du -h --max-depth=2 /usr/ | sort -nr | head -n 20

我想显示 /usr 文件夹下最大的 20 个文件夹。
这 20 个文件夹是否也包括所有子文件夹的大小?

答案1

这两个调用的行为有一些重要的变化。让我们使用一个例子,使用以下代码创建的结构:

mkdir mydir/{.a1,a2,a3}/{.b1,b2}/{.c1,c2} -p

如果你调用,du --max-depth=2 mydir你将获得:

0       mydir/.a1/.b1
0       mydir/.a1/b2
0       mydir/.a1
0       mydir/a2/.b1
0       mydir/a2/b2
0       mydir/a2
0       mydir/a3/.b1
0       mydir/a3/b2
0       mydir/a3
0       mydir/

但如果你运行:

du --max-depth=2 mydir/*`

通配符将被扩展并变为以下内容的等价物:

du --max-depth=2 mydir/a2 mydir/a3

将会得到以下结果:

0       mydir/a2/.b1/.c1
0       mydir/a2/.b1/c2
0       mydir/a2/.b1
0       mydir/a2/b2/.c1
0       mydir/a2/b2/c2
0       mydir/a2/b2
0       mydir/a2
0       mydir/a3/.b1/.c1
0       mydir/a3/.b1/c2
0       mydir/a3/.b1
0       mydir/a3/b2/.c1
0       mydir/a3/b2/c2
0       mydir/a3/b2
0       mydir/a3

这里要注意的重要一点是,它将忽略.a1目录。为了包含它,您必须运行类似于以下内容的命令:(du --max-depth=2 mydir/{.[!.]*,*}但我想可能有一种我不知道的更简单、更通用的方法)。它也不会计算目录的整体大小mydir

是的,报告的大小du包括子文件夹的大小。

答案2

前者统计 内的可见物体/usr,后者统计 下的所有物体/usr,包括/usr其自身。

相关内容