1
2
du -s /usr/ports/* 2>/dev/null | sort -r -n | head -10 | awk '{print $2}' | xargs du -sh 2>/dev/null | cat -n

ざっくりとした解説

  • du -s して各ディレクトリの容量の集計を取得
  • sort -r -n でひっくり返す
    • -n オプションは、フィールドを数値扱いでソートするオプション
> -n, --numeric-sort compare according to string numerical value
  • awk でディレクトリ名だけを抽出して
  • head -10 でトップ10を抽出
  • xargsして
  • 再度 du -s する。今度は -h を付けて見やすく。
  • ついでに cat -n で行番号を付ける。
  • ※du に 2>/dev/nullが付いているのは、権限不足でディレクトリが参照できない時のエラーメッセージをあえて無視するため。
出力結果はこんな感じ ``` 1 60M /usr/ports/devel 2 52M /usr/ports/www 3 26M /usr/ports/games 4 24M /usr/ports/INDEX-8 5 20M /usr/ports/net 6 20M /usr/ports/graphics 7 19M /usr/ports/textproc 8 19M /usr/ports/security 9 16M /usr/ports/sysutils 10 15M /usr/ports/lang ```
NOTE:帰ってきたら続きで、コマンドプロンプトのばあいを書く