我有以下目录结构:
relative_path/
app1/
data
config
trash
other_app/
inputs
outputs
garbage
anything_else/
v1/
v1.5
v2/
我需要计算出第二级每个目录的磁盘使用情况(例如relative_path/anything_else/v1
,但不是relative_path/anything_else
nor relative_path/anything_else/v1/v1.5
)
如果我这样做,du -d2 relative_path
它不会列出第三级以上的目录,但仍会列出第一级目录。
我怎样才能过滤掉仅有的二级目录?
答案1
find
使用 GNU或 shell 循环 获取目标深度的目录,使用-s
(与 相同-d0
)显示每个参数的总计。这将输出relative_path/anything_else/v1
但显示该目录及其子目录的总数。
如果您还想排除子目录的大小,请添加另一个-S
.
find relative_path -mindepth 2 -maxdepth 2 -type d -exec du -sS {} \;
或者
for dir in relative_path/*/*/; do
du -sS "$dir"
done