Linuxでディレクトリを実際のサイズ順に並べ替える方法【GUI・コマンド両対応】
Linuxのファイルブラウザーは、WindowsのエクスプローラーやmacOSのFinderと同様に、ディレクトリをサイズ順に並べ替える機能が多くのユーザーの期待どおりには動作しません。サブディレクトリの数や含まれるファイルの数で並べ替えることはできますが、実際のディスク使用量(サイズ)による並べ替えは、多くの場合そのままでは行えず、追加のツールが必要になります。
幸い、ディレクトリが実際にどれほどのストレージ容量を占めているのかを調べるためのテクニックがいくつか存在します。なお、ファイルシステム上では「フォルダ」と「ディレクトリ」にほとんど違いはありません。ファイルブラウザーがフォルダと呼んでいるものは実質的に同じものなので、どちらの呼び方をしていてもこれらのテクニックは有効です。ここでは一貫性を保つために「ディレクトリ」という用語を使用します。
方法1:ディスク使用量アナライザー(baobab)を使う
Ubuntu、Debian、Linux Mintなどのユーザーで、グラフィカルなディスク解析ツールを好む場合は、ターミナルから「sudo apt-get install baobab」を実行してインストールしましょう。FedoraやRed Hatのユーザーは通常「sudo yum install baobab」でインストールできます。ただしbaobabはGTK+アプリケーションのため、KDEやLXQtといったQtベースのデスクトップ環境を使用している場合は、依存パッケージの追加インストールが必要になることがあります。
必要な環境が整ったら、コマンドラインで「baobab」と入力してアプリケーションを起動できます。UbuntuのUnityデスクトップならDashから検索してもよいでしょう。アプリケーションファインダーを使いたい場合は、Superキー(Windowsキー)を押しながらRキーを押して「baobab」と入力するか、「アプリケーション」メニューの「システムツール」カテゴリからGNOME Disk Usage Analyzerを探して起動することも可能です。操作方法は使用しているデスクトップ環境によって異なります。
baobabを起動すると、まずファイルシステムの選択を求められます。目的のディレクトリが存在するデバイスを選択すると、プログラムがディレクトリ構造の読み込みを開始します。読み込みが完了すると、デバイス上のすべてのディレクトリの一覧が表示されます。
「サイズ」ボタンをクリックすると、ディレクトリを実際のサイズの降順(大きい順)に並べ替えられます(初期状態は昇順です)。ディレクトリ名の横にある矢印をクリックして展開すれば、その下層にあるサブディレクトリも同様に並べ替えて確認できます。
さらに、「内容」の見出しをクリックすると、通常のファイルマネージャーと同じように項目数で並べ替えられます。これにより、各トップレベルディレクトリの実際のサイズと、サブディレクトリ内の項目数とを比較できて便利です。
方法2:定番のduコマンドを使う
コマンドラインでの作業に抵抗がなければ、ほぼすべてのLinux環境でUnix系のディスク使用量表示ツール「du」を利用できます。このプログラムは任意のファイル群のディスク使用量を集計します。引数なしで実行すると、各ディレクトリを再帰的にたどり、ツリーの末端まで各ディレクトリのサイズを順に集計していきます。
特定の階層以下のディレクトリをサイズ順に並べ替えたい場合は、次のコマンドを使用します。
du –si –max-depth=1 nameOfDirectory | sort -h
「nameOfDirectory」の部分は、起点としたいディレクトリ名に置き換えてください。たとえば「/lib」直下のディレクトリをサイズ順に並べたい場合は、次のように実行します。
du –si –max-depth=1 /lib | sort -h
「–max-depth=」の後ろの数字は、duコマンドがディレクトリ構造をどこまで深く探索するかを指定する値なので、必要に応じて変更してください。今回はツリー全体を走査せず、単一のディレクトリ直下のみを確認するのが目的だったため、1のままにしています。
「–si」オプションは、国際単位系(SI)に基づいてサイズを表示することを指示します。この場合、1KB=1,000バイトとして計算されます。OS X(macOS)から移行したユーザーや、ハードウェア容量の感覚でサイズを把握しているユーザーにはこちらが好まれますが、多くのユーザーは1MB=1,024バイトというバイナリ表記に慣れています。その場合は「–si」を「-h」に置き換えます。
du -h –max-depth=1 /lib | sort -h
こうすることで、バイナリサイズ(いわゆるKiB単位)に慣れたユーザーにとっても期待どおりの出力が得られます。また、トップレベルディレクトリ内のサブディレクトリが多すぎて出力が画面からあふれる場合は、コマンド末尾に「| less」や「| more」を付けるとよいでしょう。なお、最近のX端末エミュレーターであれば、スクロールバーやトラックパッド、タッチスクリーンで結果をスクロールできることも覚えておきましょう。
ncduでより快適に操作する
この方法を頻繁に使うのであれば、ncursesベースのduビューアー「ncdu」を導入するのもおすすめです。Debian、Ubuntu、各種Ubuntu派生版、Bodhi、Linux Mintでは「sudo apt-get install ncdu」でインストールできます。FedoraやRed Hatでは、sudoersファイルを設定済みなら「sudo yum install ncdu」、未設定なら「su -」で管理者パスワードを入力した後に「yum install ncdu」を実行してください。
ncursesベースのシンプルな作りなので、依存関係の問題に直面することはまずないでしょう。「ncdu」と入力すれば現在のディレクトリを、「ncdu /lib」のように入力すれば任意のディレクトリを解析対象にできます。
起動すると、指定したディレクトリ内の項目数を計算中である旨が表示されます。計算が完了すると、矢印キーでディレクトリを実際のサイズ順に閲覧できるようになり、「S」キーを押すことでサイズ順の並べ替えを切り替えられます。
著者について
Kevin Arrows(ケビン・アローズ)
ケビン・アローズは10年以上の業界経験を持つテクノロジースペシャリストです。Microsoft Certified Technology Specialist(MCTS)認定資格を保有し、最新の技術動向を追いかけることに強い情熱を持っています。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い技術トピックについて執筆しており、複雑な技術的概念を明確かつ簡潔に説明する能力で同業者から高い評価を得ています。
-
Linuxの「Broken Pipe(パイプ破損)」エラーを解決する方法 – apt-getトラブルの対処ガイド
Linuxは安定して動いているように見えても、まれにパッケージが一切インストールできなくなることがあります。DebianやUbuntu、そしてそれらから派生したディストリビューションはapt-getパッケージマネージャーを採用しています。通常、管理者(root)権限があれば「apt-get install -f」コマンドを実行することで、必要な追加パッケージをインストールできます。しかし、ごくまれに「dpkg-deb: error」というメッセージが表示され、その後「broken pipe(壊れたパイプ)」エラーが発生したと通知されるケースがあります。 通常、「broken pipe」という用
-
デュアルブート環境で「Shim SBATデータの検証に失敗しました(Security Policy Violation)」エラーが出たときの対処法
「Verifying shim SBAT data failed: Security Policy Violation」(Shim SBATデータの検証に失敗しました:セキュリティポリシー違反)というエラーは、WindowsとLinuxを両方インストールしているデュアルブート環境のPCでよく発生します。これは、Secure Boot(セキュアブート)というセキュリティ機能がLinuxの起動をブロックすることで起こるものです。原因は、Microsoftが最近のWindowsアップデートで導入した最新のセキュリティルールに対して、Linux側で使われている起動ファイル(ShimやGRUB)が古く、