nixCraftは9月19日(米国時間)、「Linux find largest file in directory recursively using find/du - nixCraft」において、Linuxで大きなサイズのファイルを含んでいるディレクトリや、サイズの大きなファイルを探すためのコマンドの使い方を紹介した。複数のコマンドを組み合わせて目的とする結果を得るための方法を説明している。

紹介されている主な実行方法は次のとおり。

対象ディレクトリ以下で総合サイズの大きなディレクトリからトップ20を表示

sudo du -a 対象ディレクトリパス | sort -n -r | head -n 20

全ディレクトリに関して総合サイズの大きなディレクトリからトップ20を表示

sudo du -a / 2>/dev/null | sort -n -r | head -n 20

最もサイズの大きなファイルを探す方法 (findutilsのfindコマンド)

sudo find / -type f -printf "%s\t%p\n" | sort -n | tail -1

サイズの大きなファイルから順に表示する方法 (findutilsのfindコマンド)

find $HOME -type f -printf '%s %p\n' | sort -nr | head -10
  • 対象ディレクトリ以下で総合サイズの大きいディレクトリからトップ20を表示したサンプル

    対象ディレクトリ以下で総合サイズの大きなディレクトリからトップ20を表示したサンプル

  • 全ディレクトリに関して総合サイズの大きいディレクトリからトップ20を表示したサンプル

    全ディレクトリに関して総合サイズの大きなディレクトリからトップ20を表示したサンプル

  • ファイルサイズの大きいファイルを表示したサンプル

    ファイルサイズの大きなファイルを表示したサンプル

記事で紹介されているfindコマンドで使われている-printfというオプションはfindutils (GNU Find Utilities)のfindコマンドに特有のオプション。ほかの実装系を利用する場合は、それぞれ別のオプションやほかのコマンドを組み合わせて同様に出力になるように変更する必要がある。