• ベストアンサー

ディレクトリのサイズを順番に表示したい

# ls -la としても,ファイルのサイズは正確にでるのですが, ディレクトリのサイズがどれも512とか1024とかしかでません. これを正確に出力した上で, ディレクトリの大きさ順に出力いたいのですが どうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mdebugon
  • ベストアンサー率75% (6/8)
回答No.3

念のため補足します。 ls で出力されるディレクトリのサイズですが、これは、そのディレクトリ直下のファイルを 管理するためのテーブル領域の大きさだと考えてください。 一定の大きさ毎(512byte単位とか)で獲得します。ディレクトリ直下のファイル数が増えると やがて512byteでは足りなくなり512byte追加して1024byteになります。 ここで注意したいのは、個々のファイルの大きさには依存しないということです。 あくまで管理テーブルですからファイルの個数だと思ってください。 なおファイルを削除しても獲得したテーブルは開放しないので、1024byteから512byteに減ることはないです。 さて、ほかの人が回答している du というのは、実際のファイルのサイズなどの合計を出してくれる コマンドです。おそらく質問者のやりたいことも du 的なことでしょう。 "du", "du -s", "du -s *", で少しずつ処理が違うので試してみると面白いでしょう。

norioP
質問者

お礼

ありがとうございました。 du -s * | sort -nr として無事,解決できました。 またテーブルのお話も参考になりました。

その他の回答 (2)

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

ディレクトリの大きさ順となると、sortを併用して du | sort -nr といった具合でしょうか。

norioP
質問者

お礼

ありがとうございました。 無事,解決できました。

  • yosi_yosi
  • ベストアンサー率35% (165/468)
回答No.1

ディレクトリのサイズではなく、そのディレクトリの中にあるファイルサイズの合計が知りたいということでよろしいでしょうか? その場合、 > du で表示することが出来ます。 詳しいオプションはmanで確認してください。

norioP
質問者

お礼

ありがとうございました。 無事,解決できました。