如何仅查找二级目录的磁盘使用情况?

如何仅查找二级目录的磁盘使用情况?

我有以下目录结构:

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_elsenor 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

相关内容