这两者有什么区别:
du -h --max-depth=2 /usr/* | sort -nr | head -n 20
Run Code Online (Sandbox Code Playgroud)
和:
du -h --max-depth=2 /usr/ | sort -nr | head -n 20
Run Code Online (Sandbox Code Playgroud)
我想在 /usr 文件夹下显示 20 个最大的文件夹。
这 20 个文件夹是否也包括整个子文件夹大小?
小智 7
这两个调用的行为有一些重要的变化。让我们使用一个示例,其结构由以下人员创建:
mkdir mydir/{.a1,a2,a3}/{.b1,b2}/{.c1,c2} -p
Run Code Online (Sandbox Code Playgroud)
如果您调用,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/
Run Code Online (Sandbox Code Playgroud)
但是如果你运行:
du --max-depth=2 mydir/*`
Run Code Online (Sandbox Code Playgroud)
通配符将被扩展,它将变成相当于:
du --max-depth=2 mydir/a2 mydir/a3
Run Code Online (Sandbox Code Playgroud)
这会给你以下结果:
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
Run Code Online (Sandbox Code Playgroud)
这里要注意的重要一点是它会省略.a1
目录。为了包含它,您必须运行类似于:(du --max-depth=2 mydir/{.[!.]*,*}
但我想可能有一种我不知道的更简单,更通用的方法)。它也不会计算mydir
目录的整体大小。
是的,报告的大小du
包括子文件夹的大小。