du -sh * | sort -h で大きいディレクトリを探す(隠しディレクトリも含める)
ディスクがいっぱいになったら du -sh * | sort -h。一番下が一番大きい。ただし * はドットで始まる名前を含まないので、.cache などは別に指定する。
やり方
bash
du -sh * | sort -hdu -sはディレクトリごとの合計、-hは1.2Gのような読みやすい単位。sort -hはKMGの単位を理解して並べる(普通の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 の両方で使える。