Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Disk full? broot's whale-spotting mode plus Ctrl-G turns your cleanup into one command

2026年09月26日に「Dev.to」が公開したITニュース「Disk full? broot's whale-spotting mode plus Ctrl-G turns your cleanup into one command」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

ディスク容量不足時、`broot`はファイル整理を効率化する。`br -w`でファイルをサイズ順表示、`Ctrl-G`で削除対象を選んでステージングエリアへ集め、`:rm`でまとめて削除。これにより、従来のdu/rmの繰り返し作業が不要になり、削除前に内容確認もできるため、SE初心者でも安全にディスク整理ができる。

ITニュース解説

システムエンジニアとして仕事をしていると、誰しも一度は「ディスクの容量がいっぱいになった」という状況に直面する。この状態はビルドやバックアップの失敗など、さまざまな問題を引き起こす。従来、この問題に対処するためには、du -sh */ | sort -hのようなコマンドでディレクトリのサイズを確認し、不要なファイルを見つけたらrmコマンドで一つずつ削除するという作業を繰り返すのが一般的だった。この方法は、ディレクトリ全体のサイズは把握できるものの、その中に含まれる個々のファイルまでは見通せないという課題がある。また、削除したいファイルが複数あっても、まとめて選択して一度に削除する機能がないため、非効率な作業になりがちだった。

このような非効率なディスククリーンアップのワークフローを改善し、より効率的に、そして安全にファイル整理を行うための強力なツールがbrootである。brootは、ファイルやディレクトリをインタラクティブなツリー形式で表示し、直感的な操作で探索や管理ができるツールである。特に、ディスク容量不足の際に役立つ「whale-spotting mode」と「staging area」という機能が提供されており、これらを組み合わせることで、ディスククリーンアップの作業が大幅に簡素化される。

具体的に、brootを使ったディスククリーンアップのワークフローは以下の3つのステップで構成される。

まず最初のステップは、br -wコマンドを使って、サイズ順にソートされたファイルのビューを得ることである。brはbrootを起動するためのシェル関数で、これを使用すると、ディレクトリを移動する際にcdコマンドのように動作する利点がある。-wフラグは「whale-spotting mode」を有効にするもので、ファイルとディレクトリをそのサイズが大きい順に表示する。これにより、ディスク容量を最も多く消費している場所を一目で特定できる。従来のdu | sort -hコマンドとの大きな違いは、brootが提供するインタラクティブなツリー表示にある。大きなディレクトリから順に、矢印キーやエンターキーを使って階層を深く掘り下げ、その中にある大きなファイルまで、新しいコマンドを実行することなくスムーズにたどり着ける。これにより、どのファイルやディレクトリがディスクを圧迫しているのかを、まるで地図を広げるように視覚的に把握できる。

次のステップは、Ctrl-Gを使って削除したいファイルのセットを構築することである。br -wで表示されたツリー上で、削除したいファイルにカーソルを合わせてCtrl-Gを押すと、そのファイル名の横に目印がつき、画面の右側に「staging area(ステージングエリア)」と呼ばれる新しいパネルが開く。このステージングエリアには、これまでに選択したファイルが一覧表示される。さらに削除したいファイルがあれば、同様にカーソルを合わせてCtrl-Gを押すことで、そのファイルもステージングエリアに追加される。誤って選択した場合は、もう一度Ctrl-Gを押すことでステージングエリアから除外できる。このパネルはファイルを追加または削除するたびに更新され、選択されたファイルの合計サイズも表示される。これにより、実際にどれくらいの容量が解放されるかを事前に正確に把握できるため、推測に頼ることなくクリーンアップの効果を確認できる。

最後のステップは、構築した削除対象のセットをレビューし、:rmコマンドで一括削除することである。ステージングパネルが開いた時点では、まだフォーカスはツリーパネルに残っているため、引き続きファイルの選択を続けられる。ステージングエリア内のファイルを確認し、最終的な削除対象を確定するために、Ctrl-Rightキー(またはCtrl-Rightが機能しない場合は:panel_right)を押して、フォーカスをステージングパネルに移動させる。ステージングパネルにフォーカスが当たると、通常のbrootパネルと同様にスクロールしたり、フィルタリングしたりして、削除前の最終確認を行える。すべての削除対象がこの一箇所で可視化されているため、意図しないファイルが削除されるリスクを大幅に軽減できる。ステージングエリアの内容で問題がなければ、:rmと入力し、エンターキーを押すことで、ステージングエリア内のすべてのファイルが一括で削除される。この際、ステータスバーに表示される選択ファイルが一部に限られる場合があるが、ステージングパネルに表示されている内容が、実際に削除される対象の真実であるため、そちらを信頼することが重要である。

もちろん、ディスククリーンアップはfindコマンドとxargs rmを組み合わせるなど、スクリプトを使って自動化することも可能である。定期的に発生する特定のファイルの削除など、繰り返し行う必要がある作業にはスクリプトの利用が適切な解決策となる。しかし、ディスク容量不足が初めて発生した場合や、何がディスクを圧迫しているのか、どのファイルを削除すべきかまだはっきりしない初期段階では、インタラクティブな作業が不可欠である。例えば、node_modulesディレクトリは本当に不要なのか、このログファイルはまだ書き込み中ではないか、この.dbファイルは忘れていたアプリケーションのものか、といった人間による判断が必要となる。brootのステージング機能は、個々のファイルを具体的に表示し、削除しても安全かどうかを判断する手助けとなる。一度、手動で作業して削除すべきファイルのパターン(例えば、90日以上前の古いログファイルなど)が明確になったら、その後に具体的なスクリプトを作成することで、より安全で効率的な自動化が可能になる。まずインタラクティブに作業を行い、削除のルールが確立されたらスクリプト化するというアプローチが推奨される。

使用しているターミナルの設定によっては、Ctrl-GやCtrl-Rightといったキーボードショートカットがbrootに到達せず、何も反応しない場合がある。しかし、このワークフローはキーボードショートカットに完全に依存しているわけではない。すべての操作には、キーボードショートカットが機能しない場合に代替として使用できる「typed verb(入力コマンド)」が用意されている。例えば、Ctrl-Gの代わりに:toggle_stage(または:stage / :unstage)、Ctrl-Rightの代わりに:panel_rightなどがある。キーボードショートカットが反応しない場合は、これらの入力コマンドを使用することで、同様の機能を利用できる。

また、brootのステージングエリアは、ファイルを削除する用途だけでなく、他の様々な操作にも応用できる汎用性を持っている。例えば、:cp {dest}コマンドを使用すれば、ステージングエリア内のファイルセットを別の場所にまとめてコピーしてから削除するという、バックアップを含んだクリーンアップが可能となる。:mv {dest}コマンドを使えば、ファイルを別のボリュームに移動させ、削除せずにディスク容量を確保できる。:chmod +xのように、ステージングされたすべてのファイルに一括でパーミッションを適用するといった使い方もできる。特にユニークなのは:zipコマンドである。このコマンドは、ステージングエリア内のすべてのファイルを一つのzipアーカイブにまとめて圧縮する。例えば、:zip /tmp/backupと実行すれば、選択された古いログファイルなどをまとめて/tmp/backup.zipというアーカイブとして保存し、その後で削除するかどうかを検討できる。これは、重要なファイルをアーカイブしてから整理するという、もう一つのクリーンアップワークフローを可能にする。

関連コンテンツ

関連IT用語