ファイルサイズ分布を取得するには?

ファイルサイズ分布を取得するには?

特定のディレクトリのファイルサイズ分布を知りたいです。

注:ファイルサイズ分布、いいえディレクトリサイズ。つまり、60バイトファイルが25個、12587バイトファイルが50個、57kバイトファイルが2個などがあることを知りたいという意味です。

コマンドライン(リモートシステムなど)で簡単にグラフ化された形式でデータを収集できる場合は、ボーナスポイントになります。

ベストアンサー1

ファイルを一覧表示し、リストからサイズ(バイト単位)を抽出してソートし、各サイズの発生回数を計算します。

find /my/directory -type f -exec ls -l {} + | cut -d' ' -f5 | sort -n | uniq -c
  • あまり効率的ではありません
  • ファイルが多い場合は、中間結果を一時ファイルに保存し、別の一時ファイルに並べ替えて「uniq」することをお勧めします。
  • ここでは数値ソートを使用するため、出力はファイルのサイズに応じて昇順にソートされますが(大丈夫です)、同じ行が一緒にグループ化されている限り、どのソートも大丈夫です。
  • 結果をパイプにリンクして、awk '{ print $1 "," $2 }'選択したプロットツールで使用するCSVファイルを取得します(スプレッドシートツールも機能します)。

おすすめ記事