
次のディレクトリ構造があります。
relative_path/
app1/
data
config
trash
other_app/
inputs
outputs
garbage
anything_else/
v1/
v1.5
v2/
2番目のレベルの各ディレクトリのディスク使用量を特定する必要があります(例:relative_path/anything_else/v1
、しかしrelative_path/anything_else
norではありませんrelative_path/anything_else/v1/v1.5
)。
これにより、du -d2 relative_path
3番目のレベル以上のディレクトリは一覧表示されませんが、まだ最初のレベルのディレクトリは一覧表示されます。
どのようにフィルタリングできますか?ただセカンダリディレクトリ?
答え1
find
GNUまたはシェルを使用してターゲット深度のディレクトリを繰り返し-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