ncdu 入門 - 対話的にディスク使用量を調べて掃除する
この記事でできるようになること
- `ncdu` を起動し、矢印キーだけで容量の大きいディレクトリまで辿れる
- `s` `n` `C` のソート切り替えと `d` の削除手順を説明できる
- `-r`(読み取り専用)と `-x`(同一ファイルシステムのみ)を使い分けられる
前提知識(先に読むと理解しやすい記事)
この記事で解決できること
ncduを使って 容量の大きいディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。を対話的に辿る 方法が分かります- 大きいファイルを見つけて その場で安全に削除 できます
duを何度も打つ調査から キー操作だけの調査 に切り替えられますssh越しに リモートサーバーの容量を調査 できます
対象読者:Linux 入門者。du で容量を探すのに疲れた方。
言葉の整理
- 対話的:コマンドを打ち直さず、画面を見ながらキー操作で進める方式です。「インタラクティブ」も同じ意味です。
- ディレクトリ:Windows や Mac でいうフォルダのことです。
- スキャン:対象のファイルを 1 つずつ調べて回ることです。「走査」とも言います。
- ファイルシステム:ディスクを区切って使うための仕組みです。この記事では「
/や/homeのように独立して容量を数える単位」と考えてください。 - マウント:ディスクをディレクトリに結びつけて使える状態にすることです。
- 標準出力 / 標準入力:コマンドが結果を書き出す先と、コマンドが入力を受け取る口のことです。第 7 章で使います。
ncdu は調べるだけの使い方もできます。-r を付けて起動すれば、削除機能そのものが無効になります。最初は必ず -r を付けて練習してください。
なお ncdu は本サイトの仮想ターミナル入力したコマンドを解釈してコンピュータに実行させる対話プログラム。には入っていません。実機の Linux か WSL で試してください。だからこそ、練習は -r から始めてください。
導入:リナの「du 連打」事件
du で大きいディレクトリを探しています。du を打って、深い階層に cd して、また du を打って、の繰り返しです。これでは日が暮れます。du 連打」だね。みんな一度は通る道だよ。ncdu という専用ツールを使うと、矢印キーだけ で済むんだ。cd も du も打たなくていいんですか?ncdu は画面の中をファイルマネージャーのように歩き回れる。大きいディレクトリを辿って、その場で削除までできるよ。結論を先に
ncdu= NCurses Disk Usage。duの結果を 対話的な画面 で見られるツール- 矢印キーで階層を移動、
dでその場削除、sでサイズ順ソート - まず
sudo apt install ncduで入れてncdu /で起動するだけ
1. ncdu とは何か?
結論:
ncduはduの結果を全画面の対話画面で見られるツール。矢印キーで容量の大きい場所まで掘り下げられる。
ncdu は何の略なんですか?du の結果を 画面に表示 してくれるツールなんだ。du の進化版のようなものですか?du は数字を並べて出すだけだね。ncdu は大きい順に並べてくれる。Enter で中に入れるし、左矢印で戻れる。だから迷子にならずに、容量を使っている場所まで辿り着けるんだ。du との違い(ざっくり)
du→ 一回コマンドを打つと数字が出ます。その後は自分でcdして再実行しますncdu→ 一度スキャンすれば、あとは 画面の中を歩き回るだけ で深掘りできます
2. インストールと起動
結論:
ncduは標準では入っていないことが多い。apt/dnfでインストールし、ncdu パスで起動する。
ncdu で共通だよ。まずはインストールからだね。インストール
# Ubuntu / Debian 系 $ sudo apt install ncdu # RHEL / Fedora 系 $ sudo dnf install ncdu # 古い CentOS など $ sudo yum install ncdu
起動してみる
# カレントディレクトリを調査 $ ncdu # パスを指定して調査 $ ncdu /var # ルート全体を調査(sudo 推奨) $ sudo ncdu /
ncdu / を実行したら「Scanning...」と出て、しばらく待たされました。ncdu は起動時に 指定パスファイルやディレクトリの場所を表す文字列。以下を一度スキャン するんだ。du と同じで、対象が大きいと時間がかかる。スキャンが終わると一覧画面に切り替わるよ。システム全体を調べるときは sudo
/ の下には、一般ユーザーが読めないディレクトリがあります。sudo を付けないと、その部分が「Permission denied」で集計から外れます。その結果、数字が実際より小さく出ます。
システムを調べるときは sudo ncdu / が基本です。
3. 画面の見方と移動の基本
結論: 上下矢印で項目を選び、Enter(右矢印)でディレクトリに入る。左矢印で親に戻る。
qで終了。
--- /var ------------------------------------------------------
1.2 GiB [##########] /log
512.0 MiB [#### ] /cache
24.0 MiB [ ] /lib
4.0 KiB [ ] /games
画面の読み方
- 左の数字:そのディレクトリやファイルの 使用量 です
[#### ]:親に対する 割合を棒で表したもの です- 名前の前の
/:ディレクトリである印です - 一番上の
--- /var ---:いま見ている場所です
基本のキー操作
移動系キー(まずこれだけ覚える)
| キー | 動作 |
|---|---|
↑ / ↓ |
項目を選択(上下に移動) |
Enter または → |
選択したディレクトリに 入る |
← |
親ディレクトリに 戻る |
r |
いま見ている場所を 測り直す |
q |
ncdu を 終了 |
? |
ヘルプ(キー一覧)を表示 |
画面内のキー r と、起動オプションの -r は別物です。キーの r は測り直しです。オプションの -r は削除機能を無効にします。
cd も du も打たずに、矢印キーだけで奥まで潜れる。これが ncdu の便利なところだよ。4. 並べ替えと表示の切り替え
結論:
sでサイズ順、nで名前順、Cでファイル数順。gで割合・グラフの表示を切り替えられる。
ソート・表示系キー
| キー | 動作 |
|---|---|
s |
サイズ順 にソート(デフォルト) |
n |
名前順 にソート |
C |
ファイル数順 にソート(大文字 C) |
g |
割合 / グラフバーの表示を切り替え |
a |
見かけのサイズ(apparent size)と実使用量を切替 |
a(apparent size)の使いどころ
ncdu は既定で 実際にディスクを占有しているサイズ を表示します。a を押すと「見かけ上のサイズ」の表示に切り替わります。
この 2 つは、中身がすかすかのファイルや、小さいファイルが大量にある場合にずれます。違いを知っておくと混乱しません。
5. その場で削除する
結論: 削除したい項目を選んで
dを押す。確認プロンプトコマンドの入力を待っている状態を示す記号(例 $ や #)。が出るので、duで探してrmする往復が不要になる。
ncdu を抜けて rm するんですか?ncdu の中で消したい項目を選んで d を押すだけだね。du で探して rm で消す往復が、まるごと不要になるんだ。削除の手順
↑/↓で消したいファイル / ディレクトリを選択しますdを押します- 確認画面が出ます。選択肢は
yes/no/don't ask me againの 3 つです ←/→で選択肢を動かし、Enterで決定します。qを押せば中止できます
3 つ目の don't ask me again を選ばないでください
don't ask me again を選ぶと、それ以降の削除で確認画面が出なくなります。d を押した瞬間に消えるようになります。
初心者のうちは yes か no だけを使ってください。
d は本物の削除。取り消せない
ncdu の d は rm と同じく 実体を削除 します。GUI と違って、ゴミ箱には入りません。すぐに元へは戻せません。
特に sudo ncdu / で起動している場合は注意が必要です。システムファイルを誤って消すと、起動できなくなる ことがあります。
安全に練習するための 3 つの型を覚えてください。
- まず
-rを付けて起動する(ncdu -r ~)。削除機能そのものが無効になります - 練習用のディレクトリを作り、その中だけで試す(例:
mkdir -p ~/ncdu-practice && cd ~/ncdu-practice) - 消す前に、名前とサイズと更新日時を必ず確認する
自信がないディレクトリは消さないでください。
消す前のチェックリスト
- そのファイルは本当に不要ですか(ログ / キャッシュ / 一時ファイルですか)
- 起動中のサービスが使っていませんか
- 大きいログは、消すより中身だけを空にする方が安全なこともあります(
truncate -s 0 ファイル名)
2 つ目について補足します。サービスが開いたままのファイルを消すと、容量が戻りません。この「削除済み開きファイル」の問題は du と df の違い を参照してください。
6. 実務で効くオプション
結論:
-xでマウント境界を跨がない、-rで読み取り専用、-o/-fでスキャン結果の保存・再利用ができる。
よく使う起動オプション
| オプション | 意味 |
|---|---|
-x |
同じファイルシステムだけ 集計(別マウントを跨がない) |
-r |
読み取り専用 モードで起動(d による削除を無効化) |
-o ファイル |
スキャン結果をファイルに エクスポート |
-f ファイル |
エクスポート結果を 読み込んで 表示 |
--exclude パターン |
特定のパスを集計から除外 |
-x は du のときに出てきたものですよね。du -x と同じだよ。/home が別パーティションのとき、跨いで二重に数えない ようにできる。df の数字と比べたいときに便利だね。6-1. リナの失敗:d を押すつもりが違う行を消しかけた
/var を調べていて、大きいキャッシュを消そうとしました。d を押したら、確認画面に出てきた名前が思っていたものと違っていて、ひやりとしました。--- /var ------------------------------------------------------
1.2 GiB [##########] /log
512.0 MiB [#### ] /cache
24.0 MiB [ ] /lib
/cache です。でも確認画面には /log と出ました。カーソルが 1 行上にあったんですね。ncdu の d は、いま選ばれている行に対して働くんだ。画面のどこを選んでいるかが、すべてを決めるよ。-r を付けて起動するといい。d そのものが効かないから、練習にちょうどいいんだ。Enter を押します。# 削除できない状態で練習する $ ncdu -r ~
安全重視なら -r
うっかり d を押す事故を防ぎたいときは sudo ncdu -r / で起動します。-r を付けると削除機能が無効になります。
つまり 調査専用 で使えます。本番サーバーで「見るだけ」のときに有効です。
7. リモートサーバーの容量を調べる
結論: リモートで取ったスキャン結果を手元の
ncduで開けば、サーバー上で対話操作せずに調査できる(リモート側にもncduが必要)。
ncdu には スキャン結果を書き出したり読み込んだりする 仕組みがあるんだ。ssh と組み合わせると、手元の画面で調べられるようになるよ。パターン A:リモートでスキャンして手元で見る
# リモートで du 相当のスキャンだけ実行し、結果を手元の ncdu に流し込む $ ssh user@server ncdu -o- / | ncdu -f-
読み方
ncdu -o-:スキャン結果を 標準出力 に書き出します(-は標準出力を表します)ncdu -f-:標準入力 から結果を読み込んで表示します- 間の
|:リモートの出力を手元のncduに渡すパイプです
注意点が 1 つあります。-o を実行するには、リモート側にも ncdu が必要です。リモートに入っていない場合は、先にリモート側へインストールしてください。
パターン B:結果をファイルに保存して持ち帰る
その場で流し込むのではなく、いったんファイルに保存する方法です。結果を残しておけば、あとから見返せます。
# サーバー側で結果を保存(圧縮すると軽い) $ ncdu -o- / | gzip > scan.gz # 手元に転送して読み込む $ scp user@server:scan.gz . $ zcat scan.gz | ncdu -f-
8. ミニ課題:自分の環境で試してみよう
結論: ホーム配下の最大ディレクトリ特定・ソート切替・読み取り専用起動の3問で操作を定着させる。
-r を付ければ削除は起こらないよ。課題 1: ホームディレクトリの直下で、最も大きいディレクトリを見つけよう。
ヒント 1(方向づけ)を見る
調べたい場所を指定して起動します。一覧は既定でサイズの大きい順に並びます。
だから、一番上の行に注目すれば分かります。
ヒント 2(コマンド名)を見る
使うのは ncdu です。ホームディレクトリは ~ と書けます。安全のため -r を付けます。
中に入るのは Enter、戻るのは左矢印、終了は q です。
答えを見る
$ ncdu -r ~
--- /home/user -------------------------------------------------
2.5 GiB [##########] /Videos
512.0 MiB [## ] /Downloads
64.0 MiB [ ] /Documents
一番上の行が最も大きいディレクトリです。この例では /Videos です。
Enter で中に入れば、さらに大きい中身を辿れます。左矢印で 1 つ上に戻れます。
課題 2: 一覧の並び順を、サイズ順と名前順で切り替えてみよう。
ヒント 1(方向づけ)を見る
キーを 1 つ押すだけで切り替わります。コマンドを打ち直す必要はありません。
それぞれ、英語の頭文字がキーになっています。
ヒント 2(コマンド名)を見る
サイズ順は s(size)です。名前順は n(name)です。一覧画面で交互に押してみます。
答えを見る
一覧画面で s と n を交互に押します。並び順がその場で変わります。
同じキーをもう一度押すと、昇順と降順が入れかわります。
課題 3: 削除キーが効かない状態で起動し、それを自分で確かめよう。
ヒント 1(方向づけ)を見る
起動時のオプションで、削除機能そのものを無効にできます。読み取り専用にする、という考え方です。
英語の read-only の頭文字が手がかりです。
ヒント 2(コマンド名)を見る
使うのは ncdu -r です。調べる場所には /tmp を指定します。起動したら d を押して反応を見ます。
答えを見る
$ ncdu -r /tmp
-r を付けて起動すると、d キーが無効になります。削除の確認画面は出ません。
代わりに画面の下へ File deletion disabled in read-only mode.(削除機能は読み取り専用モードで無効です)と表示されます。これが -r が効いている証拠です。
慣れるまでは、この形で練習してください。
9. よくある落とし穴
結論: sudo 忘れで数字が小さく出る、
dの押し間違いで誤削除、ホームではなく/を消そうとする事故に注意。
やりがちな失敗 3 つ
sudoを付けずに/を調査する → 読めないディレクトリが外れ、数字が実際より小さく出ます- 大きいものを見つけてすぐ
dを押す → サービスが使用中だと効果がありません。先に正体を確認します -rを付けずに本番で操作する → うっかりdを押して誤削除します。見るだけなら必ず-rを付けます
安全な型
- システム調査は
sudo ncdu -x /です(同じファイルシステムだけを集計します) - 本番サーバーは原則
-r(読み取り専用)で起動します - 消す前に名前・サイズ・更新日時を確認します。迷ったら消しません
10. 振り返り
ncdu は一度スキャンすれば、あとは矢印キーだけで深掘りできるんですね。Enter で中に入り、左矢印で戻る。この 2 つで十分だよ。d は選んでいる行に効く、と覚えました。あやうく /log を消すところでした。-r を付けて起動する。それだけで事故はほとんど防げるよ。今日の 3 行まとめ
ncduはduの結果を対話的な画面で見るツール。矢印キーだけで深掘りできるsでサイズ順、nで名前順に並べかえられる。dは選んでいる行を削除する- 練習と本番の調査では
-r(読み取り専用)を付ける。システム調査ではsudoと-xも付ける