1344 文字
7 分
ディスク容量が足りない時にコピペで使えるLinux容量削減コマンド一覧【2026】
この記事について

Claude(Anthropic)との共同編集により作成されました。

要約
  • まず df -hdu で重い箇所を特定してから削除する
  • Python・Docker・パッケージマネージャのキャッシュは意外と大きい
  • find で巨大ファイルを一発検索してから判断する流れが安全

概要#

EC2インスタンスやローカルのLinuxマシンで作業していると、気づいたらディスクが逼迫している、なんてことがよくある。毎回コマンドのオプションを調べ直すのが地味に面倒なので、コピペで試せる形にまとめておく。

削除前にまず「どこが重いか」を把握するのが大事なので、探索系のコマンドから始める。


まず現状を把握する#

ディスク全体の使用状況#

Terminal window
df -h

ファイルシステムごとの使用量を人間が読める単位で表示。Use% が高いパーティションから攻める。

重いディレクトリをトップレベルから絞り込む#

Terminal window
# ルート直下で大きいものを探す
du -sh /* 2>/dev/null | sort -rh | head -20
# 特定ディレクトリを深掘りする
du -sh /var/* 2>/dev/null | sort -rh | head -20

容量が大きいディレクトリを特定したら、そのパスを変えてさらに深掘りしていく。

100MB以上のファイルを一発で探す#

Terminal window
find / -type f -size +100M 2>/dev/null | sort
# ファイルサイズも一緒に表示する場合
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -30

想定外の場所に大きなファイルが転がっていることがある。ログのローテーション漏れやMLモデルのダウンロードキャッシュなど。

ncdu でインタラクティブに確認する(インストールが必要)#

Terminal window
# Ubuntu/Debian
sudo apt install ncdu
# CentOS/RHEL
sudo yum install ncdu
# 実行
ncdu /

カーソルキーで掘っていけるのでわかりやすい。インストールできる環境なら一番楽。


ログ・一時ファイルの削除#

systemd ジャーナルログ#

Terminal window
# 現在の使用量を確認
journalctl --disk-usage
# 500MB 以下になるまで古いログを削除
sudo journalctl --vacuum-size=500M
# 2週間より古いログを削除
sudo journalctl --vacuum-time=2weeks

放置していると /var/log/journal/ がじわじわ育っていく。

/var/log 以下の個別ログ#

Terminal window
# ログファイルのサイズを確認
ls -lhS /var/log/
# ファイルを空にする(削除せずゼロにする)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log

ログファイルはプロセスが掴んだまま使っていることがあるので、rm より truncate のほうが安全。

/tmp の手動クリア#

Terminal window
# サイズ確認
du -sh /tmp
# 古いファイルを削除(例: 3日以上アクセスされていないもの)
sudo find /tmp -atime +3 -delete

パッケージマネージャのキャッシュ#

apt(Ubuntu / Debian)#

Terminal window
# キャッシュのサイズ確認
du -sh /var/cache/apt/
# ダウンロードキャッシュを削除
sudo apt clean
# 不要なパッケージを削除
sudo apt autoremove
# 両方まとめて
sudo apt clean && sudo apt autoremove

yum / dnf(CentOS / RHEL / Fedora)#

Terminal window
# yum
sudo yum clean all
# dnf
sudo dnf clean all

Python 環境の掃除#

pip キャッシュ#

Terminal window
# キャッシュの場所とサイズ確認
pip cache info
# キャッシュを全削除
pip cache purge

~/.cache/pip/ に溜まっていることが多い。

pycache を一括削除#

Terminal window
# カレントディレクトリ以下の __pycache__ をすべて削除
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null
# .pyc ファイルも削除する場合
find . -name "*.pyc" -delete

venv ディレクトリの確認と削除#

Terminal window
# カレント以下の venv を探す
find . -type d -name "venv" -o -name ".venv" 2>/dev/null
# 不要なものを削除(パスを確認してから)
rm -rf /path/to/project/venv

conda の環境と不要ファイル#

Terminal window
# 環境一覧を確認
conda env list
# 不要な環境を削除
conda env remove -n 環境名
# キャッシュや不要パッケージを削除
conda clean --all

Docker の掃除#

DockerはPull済みのイメージやビルドキャッシュが気づかないうちに大量に溜まる。

まず使用量を確認#

Terminal window
docker system df

Images / Containers / Volumes / Build Cache ごとのサイズが表示される。

一括クリーンアップ(停止コンテナ・タグなしイメージ・未使用ネットワーク)#

Terminal window
docker system prune

すべての未使用イメージも含めて削除(より強力)#

Terminal window
docker system prune -a

使っていないイメージがすべて消えるので注意。

個別に削除したい場合#

Terminal window
# 停止中のコンテナを全削除
docker container prune
# タグなし(dangling)イメージを削除
docker image prune
# 使われていないボリュームを削除
docker volume prune
# ビルドキャッシュだけ削除
docker builder prune

その他#

古いカーネルを削除(Ubuntu)#

Terminal window
# インストール済みカーネルを確認
dpkg --list | grep linux-image
# 不要カーネルを削除(現在起動中のカーネルは消さないこと)
sudo apt autoremove --purge

autoremove が自動的に古いカーネルも対象にしてくれる。

snap のキャッシュ・無効バージョンを削除#

Terminal window
# snap のサイズ確認
du -sh /var/lib/snapd/
# 無効(disabled)なスナップを削除
snap list --all | awk '/disabled/{print $1, $3}' | while read name rev; do
sudo snap remove "$name" --revision="$rev"
done

snap は古いバージョンを自動的に2世代残すので、これで減らせる。

~/.cache 以下を確認#

Terminal window
# ユーザーキャッシュのサイズを確認
du -sh ~/.cache/
du -sh ~/.cache/* 2>/dev/null | sort -rh | head -10

ブラウザキャッシュ、pip、conda、その他アプリのキャッシュが集まっている。不要なサブディレクトリは個別に rm -rf でOK。


まとめ#

対象確認コマンド削除コマンド
ディスク全体df -h
重いディレクトリdu -sh /* | sort -rh手動判断
巨大ファイルfind / -size +100M手動判断
journalログjournalctl --disk-usagejournalctl --vacuum-size=500M
apt キャッシュdu -sh /var/cache/aptapt clean && apt autoremove
pip キャッシュpip cache infopip cache purge
pycachefind . -name __pycache__find . -type d -name __pycache__ -exec rm -rf {} +
condaconda env listconda clean --all
Docker全体docker system dfdocker system prune -a

いつも忘れるのは du -sh のオプション順と findsize 指定あたり。次に詰まったらここを見ればたいていなんとかなるはず。

ディスク容量が足りない時にコピペで使えるLinux容量削減コマンド一覧【2026】
https://yurudeep.com/posts/devenv/2026/20260419/
作者
ひらノルム
公開日
2026-04-19
ライセンス
CC BY-NC-SA 4.0