コンテンツにスキップ

ncdu - NCurses ディスク使用量アナライザーチートシート

ncdu - NCurses ディスク使用量アナライザーチートシート

ncdu(NCurses Disk Usage)は、ターミナル内全体で実行されるインタラクティブなディスク使用量アナライザーです。ディレクトリツリーを1回スキャンしてから、サイズでソートされた状態でそれを閲覧し、サブディレクトリにドリルダウンし、ファイルまたはフォルダをその場で削除できます。ターミナルのみが必要なため、ヘッドレスサーバーまたはSSH経由のリモートサーバーでスペースを食っているものを見つけるための標準的なツールです。

インストール

プラットフォームコマンド
Ubuntu/Debiansudo apt install ncdu
Fedora/RHELsudo dnf install ncdu
Arch Linuxsudo pacman -S ncdu
openSUSEsudo zypper install ncdu
Alpinesudo apk add ncdu
macOS(Homebrew)brew install ncdu
FreeBSDsudo pkg install ncdu

基本的な使用法

コマンド説明
ncdu現在のディレクトリをスキャン
ncdu /ファイルシステム全体をスキャン
ncdu /var/log特定のパスをスキャン
ncdu -x /1つのファイルシステムにとどまる(マウントポイントを横切らない)
sudo ncdu /ルート権限でスキャン(保護されたファイルを含める)
ncdu --helpすべてのオプションを表示

ナビゲーションキー

キーアクション
/ または j / k選択を移動
/ Enter または l選択されたディレクトリを入力
または h親ディレクトリに移動
n名前でソート
sサイズでソート(デフォルト)
Cアイテム数でソート
a見かけのサイズvsディスク使用量を切り替え
gパーセンテージ / グラフ表示を切り替え
?ヘルプスクリーン
q終了

ファイルの管理

キーアクション
d選択されたファイルまたはディレクトリを削除
i選択されたアイテムに関する情報を表示
tソート内のディレクトリ前ファイルを切り替え
e隠しファイルを表示/非表示にする
r現在のディレクトリを再計算(再スキャン)

エクスポート及びインポート(リモートワークフロー)

ncduはスキャンをファイルに保存して後で別の場所で表示できます — SSHセッションを開いたままにせずにサーバーを監査するのに最適です。

コマンド説明
ncdu -o scan.json /スキャンしてファイルに結果をエクスポート
ncdu -o- / > scan.jsonstdout にエクスポート(ファイルにリダイレクト)
ncdu -f scan.json以前保存されたスキャンを開く(オフライン)
ssh host 'ncdu -o- /' > scan.jsonリモートボックスをスキャン、ローカルで閲覧

知る価値があるオプション

オプション説明
-xファイルシステムの境界を越えない
--exclude PATTERNグロブに一致するパスをスキップ
--exclude-kernfs疑似ファイルシステムをスキップ(/proc/sys
-r読み取り専用モード(削除を無効化)
-q静か/遅いリンク上での低速更新
--color darkカラースキームを有効化

一般的なワークフロー

# サーバーの最大のスペースホグを安全に見つける(読み取り専用)
sudo ncdu -x -r /

# インタラクティブセッションなしでリモートホストを監査
ssh prod-box 'ncdu -o- -x /' > prod-scan.json
ncdu -f prod-scan.json

# ビルドキャッシュディレクトリをインタラクティブにクリーンアップ
ncdu ~/.cache    # navigate, press d to delete

ncdu vs その他のディスク使用量ツール

ツールスタイル最適な用途
ncduインタラクティブTUIナビゲート + 削除、リモートサーバー
dustワンショットツリー+バークイックビジュアル概要(Rust)
dufマウント/使用量テーブル「ディスクはどのくらい満杯?」
duプレーンテキストスクリプトとパイプライン

リソース