テック技報最新号へ →
コード

du -sh * | sort -h で大きいディレクトリを探す(隠しディレクトリも含める)

ディスクがいっぱいになったら du -sh * | sort -h。一番下が一番大きい。ただし * はドットで始まる名前を含まないので、.cache などは別に指定する。

@tane_log · 投稿 2026-11-01
#shell#linux#disk

やり方

bash
du -sh * | sort -h
  • du -s はディレクトリごとの合計、-h は 1.2G のような読みやすい単位。
  • sort -h は K M G の単位を理解して並べる(普通の sort -n では 900K が 1G より後に来る)。

隠しディレクトリも含めるには、次のどちらかを使う。

bash
# ドット始まりの名前も足す(. と .. は除く)
du -sh .[!.]* * 2>/dev/null | sort -h

# 今いる場所の直下を全部(隠しも含む)
du -h -d 1 . | sort -h      # GNU / macOS とも -d 1 で動く

ホームディレクトリなら ~/.cache、~/.npm、~/.local/share/pnpm、~/Library/Caches(macOS)が大きくなりがち。

注意点

  • 大きなディレクトリでは時間がかかる。別のファイルシステム(マウント先)を数えたくないときは -x を付ける。
  • 削除済みなのにプロセスが開いたままのファイルは du に出ないが df の使用量には入る。df と合わないときは lsof +L1 で探す。
  • sort -h は GNU coreutils と macOS の sort の両方で使える。

出典

X の元の投稿を開く