Linuxで大容量ファイルやディレクトリを検索する方法

Linux環境において、ディスク使用量が急増した際やストレージの最適化が必要な場合、大容量のファイルやディレクトリを特定することが重要です。以下に、代表的なコマンドとその活用方法を紹介します。

大容量ファイルの検索

指定されたサイズを超えるファイルを検索するには、find コマンドを使用します。たとえば、現在のディレクトリ以下で800MBを超えるファイルをすべて検索するには次のように実行します。

find . -type f -size +800M

この出力はファイルパスのみを表示します。詳細情報を含めて表示したい場合は、ls -l と組み合わせます。

find . -type f -size +800M -print0 | xargs -0 ls -l

ファイルサイズを人間が読みやすい形式(例: MB, GB)で表示したい場合は、du -h を使用します。

find . -type f -size +800M -print0 | xargs -0 du -h

さらに結果をサイズ順に並べ替えるには、sort コマンドを追加します。

find . -type f -size +800M -print0 | xargs -0 du -h | sort -hr

ただし、-h オプションを使用すると数値のソートが正確でない場合があります。より正確なソートを行うには、単位を統一して数値として扱う必要があります。たとえば、すべてをメガバイト単位で表示し、数値ソートを行う方法があります。

find . -type f -size +800M -print0 | xargs -0 du -m | sort -nr

大容量ディレクトリの検索

ディレクトリ単位でのディスク使用量を確認するには、du(disk usage)コマンドが有効です。--max-depth オプションを使うことで、探索の深さを制限できます。

du -h --max-depth=1

サブディレクトリまで含めて2階層分の使用量を確認するには、次のようにします。

du -h --max-depth=2

結果をサイズ順に並べ替えるには、sort -n(昇順)または sort -nr(降順)をパイプでつなぎます。

du -h --max-depth=2 | sort -hr

より正確な数値ソートを行うには、単位を統一してから処理します。たとえば、すべてをメガバイト単位で表示する例です。

du -m --max-depth=2 | sort -nr

出力結果が多すぎる場合は、上位N件だけを表示するために head コマンドを使用できます。

du -m --max-depth=2 | sort -nr | head -12

これにより、最もディスク容量を消費しているディレクトリを迅速に特定できます。

タグ: linux find du Shell command-line

6月22日 20:58 投稿