2023 words
10 minutes
Macディスクスペース確保操作
概要
Macのストレージは新しいバージョンのmacOSやアプリケーション更新により、気づかないうちに容量が逼迫することがあります。本記事では、Macでディスクスペースを確保するための調査方法と削減テクニック、開発環境固有の容量問題、そしてよくあるトラブルシューティングをまとめています。
目次
ディスクスペースが逼迫する主な原因
1. 開発環境関連(最も容量消費しやすい)
- Xcode キャッシュ&派生データ:DerivedDataが数GB~十数GBになることも
- iOS DeviceSupport:複数バージョンのシミュレータサポートファイル
- Gradle キャッシュ(Android開発):
.gradle/caches/が数GB - Node.js(node_modules):プロジェクトごとに数百MB~GB単位
- pnpm/npm/yarn キャッシュ:パッケージマネージャの履歴
- Docker イメージ&コンテナ:不要なイメージが蓄積
- Python 仮想環境(venv, conda):複数プロジェクトで重複
2. キャッシュファイル(見えにくい)
~/Library/Caches/:アプリケーション各種のキャッシュ- ブラウザキャッシュ(Chrome、Safari等)
- システムキャッシュ
3. ログファイル(蓄積型)
~/Library/Logs/:アプリケーションログ- システムログ(
/var/log/) - アプリケーション固有のログディレクトリ
4. Macあるあるな容量消費
- Time Machine ローカルスナップショット:バックアップ容量
- 言語データ:Spotlightやシステムの多言語対応ファイル
- システムキャッシュ(.DS_Store等)
- 一時ファイル(
/tmp/,/var/tmp/) - 古いバージョンのOSダウンロード(
/Library/Updates/)
5. メディアとバックアップ
- ダウンロードフォルダ:使い終わったファイルが残存
- ゴミ箱:未削除ファイル
- クラウドストレージのローカルキャッシュ(iCloud Drive等)
容量を調査するコマンド
ディスク全体の使用状況を確認
# 全体の概観を見るdf -h
# より詳細に見るdiskutil info /大容量フォルダを特定(推奨)
# 1GB以上のフォルダを容量順で表示(デスクトップに結果を出力)sudo du --si -xct 1000000000 /System/Volumes/Data | sort -nr | head -30
# より詳細:結果をファイルに保存sudo du --si -xct 1000000000 /System/Volumes/Data | sort -nr > ~/Desktop/DiskSpace.txt特定ディレクトリの容量を確認
# ホームディレクトリの直下のフォルダサイズdu -sh ~/*
# Libraryディレクトリの直下du -sh ~/Library/*
# より詳細(木構造で表示)tree -h -L 2 ~/Library 2>/dev/null || find ~/Library -maxdepth 2 -type d | xargs du -sh | sort -hr | head -20ローカルスナップショットのサイズ確認(Time Machine)
# Time Machine ローカルバックアップのサイズ確認tmutil listlocalsnapshots /開発環境関連の容量削減
1. Xcode キャッシュとシミュレータ
DerivedData の削除(数GB~20GB程度削減可能)
# まず容量を確認du -sh ~/Library/Developer/Xcode/DerivedData
# 削除rm -rf ~/Library/Developer/Xcode/DerivedData/*iOS DeviceSupport の不要バージョン削除
# リスト表示ls -lh ~/Library/Developer/Xcode/iOS\ DeviceSupport/
# 不要なバージョン(古いiOSバージョン)をフォルダごと削除rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/16.* # 例:iOS 16系を削除シミュレータの利用不可デバイスを削除
# 利用可能なデバイスをリスト表示xcrun simctl list devices
# 利用不可デバイスを自動削除(2~3GB削減可能)xcrun simctl delete unavailableXcodeキャッシュの強制リセット
xcrun --kill-cache2. Gradle キャッシュ(Android開発)
# Gradleキャッシュディレクトリの容量確認du -sh ~/.gradle/caches/
# 削除rm -rf ~/.gradle/caches/
# または、gradle コマンドで実行cd /path/to/your/android/project./gradlew cleanBuildCache3. Node.js パッケージマネージャ
pnpm の不要キャッシュ削除
# ストア内の不要ファイル削除(推奨、安全)pnpm store prune
# より詳細に確認pnpm store statusnpm キャッシュ削除
npm cache clean --forceyarn キャッシュ削除
yarn cache cleannode_modules の削除(開発中は注意、再インストール必要)
# 個別プロジェクトcd /path/to/projectrm -rf node_modules/pnpm install # または npm install / yarn install
# 複数プロジェクトを一括処理find ~ -maxdepth 4 -name node_modules -type d -exec du -sh {} \; | sort -rh4. Docker
# 使用していないイメージ、コンテナ、ネットワークを削除(推奨)docker system prune -a
# より詳細な確認docker system df
# 特定のイメージを削除docker rmi <image_id>
# ダンgling imageだけ削除(安全)docker image prune -a --filter "dangling=true"5. Ollama(LLMモデル)
# ダウンロード済みモデルをリスト表示ollama list
# 不要なモデルを削除(数GBまたは数十GB)ollama rm <model_name>
# 例:Llama2 (7B) を削除ollama rm llama2:7b6. Python 仮想環境
# venv の容量確認du -sh ~/.venv/du -sh ./venv/
# 不要な仮想環境をまとめて削除find ~ -maxdepth 3 -name "venv" -o -name ".venv" | xargs du -sh | sort -rh
# 削除rm -rf ~/.venv/rm -rf ./venv/
# conda の場合conda clean --all -yキャッシュとログの削減
Caches フォルダの削除
# 容量確認du -sh ~/Library/Caches/
# 削除(注意:アプリの再ダウンロードが発生する可能性)rm -rf ~/Library/Caches/*
# 安全な部分削除(Chromeキャッシュなど)rm -rf ~/Library/Caches/Google/Chrome/Default/Cache/rm -rf ~/Library/Caches/Firefox/ブラウザキャッシュの削除
# Chromerm -rf ~/Library/Application\ Support/Google/Chrome/Default/Cache/rm -rf ~/Library/Application\ Support/Google/Chrome/Default/Code\ Cache/
# Safarirm -rf ~/Library/Safari/History.db*rm -rf ~/Library/Caches/com.apple.Safari/
# Firefoxrm -rf ~/Library/Application\ Support/Firefox/Profiles/*/cache*/ログファイルの削除
# ホームディレクトリ内のログdu -sh ~/Library/Logs/rm -rf ~/Library/Logs/*
# システムログ(rootが必要)sudo du -sh /var/log/sudo rm -rf /var/log/*.log # 注意:ログが消える一時ファイルの削除
# /tmp ディレクトリdu -sh /tmprm -rf /tmp/*
# /var/tmp ディレクトリsudo du -sh /var/tmpsudo rm -rf /var/tmp/*Macあるあるな容量問題
1. Time Machine ローカルスナップショット
Macがバッテリー駆動で外付けドライブがない場合、自動的にローカルスナップショット(バックアップ)が作成されます。これが10GB~100GB近く占めることがあります。
# スナップショット確認tmutil listlocalsnapshots /
# 最も古いスナップショットを削除tmutil deletelocalsnapshots $(tmutil listlocalsnapshots / | head -1 | tr -d '.' | awk '{print $NF}')
# より安全:全スナップショット削除(要確認)tmutil disablelocal # ローカルスナップショット無効化2. 言語データと絵文字
# Spotlightインデックスdu -sh ~/Library/Metadata/CoreSpotlight/
# システム言語ファイルdu -sh /Library/Components/
# 不要な言語リソースを削除する場合# /System/Library/English.lproj/ など(リスク高)3. .DS_Store ファイル
macOSが各フォルダに自動生成するメタデータ。単体は小さいが、蓄積するとGB単位に。
# すべての .DS_Store を検索・削除find ~ -name ".DS_Store" -type f -delete
# またはsudo find / -name ".DS_Store" -type f -delete4. ダウンロードフォルダの未整理
# ダウンロードフォルダの容量確認du -sh ~/Downloads
# 30日以上前のファイルを確認find ~/Downloads -mtime +30 -type f5. ゴミ箱の未削除
# ゴミ箱の容量確認du -sh ~/.Trash/
# 空にするrm -rf ~/.Trash/*6. iCloud Drive のローカルキャッシュ
# iCloud Driveのキャッシュdu -sh ~/Library/Mobile\ Documents/
# 保存容量を最適化# システム設定 > iCloud > iCloud Drive > オプション > 書類とデータ7. アプリケーションの言語ファイル削除
# アプリの多言語サポートを削除(日本語のみ残す等)# AppMaker等のツールを使用するか、手動で削除可能便利なツール
GUI ツール
| ツール | 説明 | 価格 |
|---|---|---|
| Disk Diag | ディスク容量を視覚的に表示、大容量ファイルを検出 | 無料/有料 |
| CleanMyMac X | キャッシュ、ログ、不要ファイルの一括削除 | 有料(サブスク) |
| DaisyDisk | 円形グラフでディスク使用状況を視覚化 | 有料 |
| OmniDiskSweeper | シンプルで軽量、視覚的なディスク分析 | 無料 |
| Finder の「ファイル情報」 | 標準機能でフォルダサイズを確認 | 無料 |
CLI ツール
ncdu(NCurses Disk Usage)
# インストールbrew install ncdu
# 使用例ncdu ~ncdu ~/Library
# ナビゲーション# ↑↓:上下移動# →:フォルダを開く# ←:戻る# d:削除# q:終了dust(より modern な du)
# インストールbrew install dust
# 使用例dust ~/Librarydust -r ~/ # 逆順でソートdirstat-rs(Rust 製)
# インストールbrew install dirstat-rs
# 使用例dirstat ~/Libraryduf(ディスク使用状況 CLI)
# インストールbrew install duf
# 使用例duf # マウント済みディスク全体duf ~/ # ホームディレクトリワンコマンドで実行できるスクリプト
安全な削減スクリプト
#!/bin/bash
echo "🧹 Macディスク容量削減スクリプト"echo "================================"
# 現在の使用量echo ""echo "📊 削減前の使用量:"df -h | grep -E "disk|Filesystem"
# キャッシュ削除echo ""echo "🗑️ キャッシュを削除..."rm -rf ~/Library/Caches/* 2>/dev/nullpnpm store prune 2>/dev/nullnpm cache clean --force 2>/dev/null
# Xcode 関連echo "🗑️ Xcode キャッシュを削除..."rm -rf ~/Library/Developer/Xcode/DerivedData/* 2>/dev/nullxcrun simctl delete unavailable 2>/dev/null
# Dockerecho "🗑️ Docker イメージを削除..."docker system prune -a -f 2>/dev/null
# ログ削除echo "🗑️ ログファイルを削除..."rm -rf ~/Library/Logs/* 2>/dev/null
# 結果表示echo ""echo "📊 削減後の使用量:"df -h | grep -E "disk|Filesystem"echo ""echo "✅ 完了!"より詳細に容量を確認するスクリプト
#!/bin/bash
echo "🔍 Macディスク容量分析"echo "===================="
DIRS=( "~/Library/Developer/Xcode/DerivedData" "~/Library/Caches" "~/Library/Logs" "~/.gradle/caches" "~/.docker" "~/Library/Mobile Documents" "~/.Trash" "~/Downloads")
for DIR in "${DIRS[@]}"; do EXPANDED=$(eval echo "$DIR") if [ -d "$EXPANDED" ]; then SIZE=$(du -sh "$EXPANDED" 2>/dev/null | awk '{print $1}') echo "$DIR: $SIZE" fidone削減時の注意点
削除しても安全なもの
- ✅ DerivedData(再構築される)
- ✅ キャッシュ(再生成される)
- ✅ 不要なDockerイメージ
- ✅ .DS_Store
- ✅ ローカルスナップショット(バックアップ必須時のみ)
削除に慎重なもの
- ⚠️ node_modules(再インストール必要)
- ⚠️ Python 仮想環境(再構築必要)
- ⚠️ システムログ(トラブル時に必要)
- ⚠️ iCloud Drive のキャッシュ(同期の遅延)
絶対に削除してはいけないもの
- ❌ /System(システムファイル)
- ❌ /Library/Fonts(フォント)
- ❌ 重要なプロジェクトファイル
- ❌ Time Machine の有効なバックアップ
まとめ
Macの容量逼迫は予防が重要です:
- 定期的に大容量フォルダを確認する習慣をつける
- 開発環境のキャッシュを定期的にクリアする
- 不要なアプリ、言語ファイルを削除する
- Time Machine の設定を確認する
- 必要に応じて自動削減ツールを活用する
スクリプトを cronjob で定期実行させることで、容量問題をプロアクティブに解決できます。
Macディスクスペース確保操作
https://tutttuwi.github.io/posts/2026-04-27_macディスクスペース確保操作/