ウェブサイト検索

Linux コマンドラインからディレクトリのサイズを確認する方法


Linuxコマンドlsはファイルのサイズを表示できますが、ディレクトリについては正しく機能せず、常に4096バイトとして表示されます。サブディレクトリに再帰して合計を表示するには、duコマンドを使用する必要があります。

duコマンドの使用

lsの最良の代替手段は、いくつかのフラグを付けてduを使用することです:

du -had 1

-h フラグは「人間に読みやすい」を意味し、サイズをKB、MB、GBでフォーマットしてくれるので、計算機を取り出す必要がありません。

-a フラグは「すべて」を意味し、個々のファイルとディレクトリの両方を含むため、ls の動作を模倣するのに便利です。

-d 1 フラグは、du が結果をどれくらい深く表示するかの制限です。デフォルトでは、すべてのサブディレクトリを表示するように設定されているため、ネストされたファイルが大量にあると面倒です。-d フラグは、それらすべてを合計して、コマンドを実行する場所から見える各ディレクトリの合計を表示します。

もしすべてのディレクトリをリスト表示したい場合は、--apparent-sizeフラグを使ってコマンドを実行することができ、これによりファイルエクスプローラで右クリック > プロパティを使用したかのように、各サブディレクトリの合計サイズが表示されます。

これはすべて混乱していますが、現在のフォルダー内の最大のディレクトリを表示したい場合は、出力をsortコマンドにパイプできます。また、-hフラグも使用することを確認してください。そうしないと、sortは128MBを1GBより大きな数値として扱います。

du -had 1 | sort -rh

デフォルトでは、duは現在のディレクトリを使用しますが、特定のディレクトリを指定することもできます。最後の引数として場所を渡すだけです。

du -had 1 ./world/

サーバー上の最も大きなディレクトリを見つける

Linuxでの一般的なタスクは、大量のディスク使用のデバッグです。各ディスクの合計使用量を表示したい場合は、df -hを使用することができます。または、よりクリーンに表示してくれる監視ツールであるglancesをインストールすることもできます:

しかし、これはディレクトリを掘り下げることはせず、問題の根源を見つけることはできません。それには du を使用しますが、-d 1 フラグを外してすべてのディレクトリを検索できるようにします。ルートを対象にし、ソートして、画面が溢れないようにトップ25のディレクトリをフィルタリングします。

du -ah / | sort -rh | head -n 25

これはアクセスできないファイルに対していくつかのエラーを印刷するかもしれませんので、sudoで実行することを確認してください。

関連記事: