• 締切済み

dfコマンドが表示する使用領域サイズは、何の情報?

dfコマンドが表示する使用領域サイズは、何の情報? お世話になります。 ファイルシステムのディスクの使用状況について、ご教授ください。 以下のディレクトリに対し、ディスクを割り当てています。 ディレクトリ名    割り当てサイズ /home         100(KB) /home/tmp      100(KB) /home直下には、tmpというディレクトリのみが存在する状態です。 サブディレクトリ(/home/tmp)配下に10KBのファイルを置いたとき、 ディスクの使用状況を見るには df -k /home/tmp で取得できると思います。 df -k /home としないのは、サブディレクトリに対してディスクを割り当てているため、 親ディレクトリに対して取得(df -k /home)しても使用状況に変化がなかったからです。 ここで質問なのですが、親ディレクトリに対してdfして得られる情報は、 具体的には何を意味しているのでしょうか? 数値に変化がないということが、何の情報を取得しているからなのかがわかりません。 参考サイトなど調べましたが、見つけることができませんでした。 ご教授いただければ幸いです。

みんなの回答

回答No.3

UNIXの基礎的な話になるのですが、 OSから見ればディレクトリも1ファイルでしかありません。 よって以下の通りです >/homeのパーティーションには各ディレクトリの定義情報(名前や権限など)に >必要な容量のみ含むことになるのでしょうか?

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 df -k /homeが返す容量は、/homeというディレクトリーポイントでマウントされているブロックデバイスにおける容量だ。  そいでは次のようなディレクトリーツリーを考えてみましょう。 / /home/ /home/tmp/ /home/tmp/aaa 20KB /home/tmp2/ /home/tmp2/bbb 10KB  けつがスラッシュになっているのがディレクトリーでそうでないのがファイルだ。ディレクトリーツリーだけを見ると、homeの下にはtmpとtmp2の2つのディレクトリーが「属している」ように見える。ところがどっこい、質問者の状況では、/と/home/と/home/tmp/は全て別のパーティーションがマウントされている。  ここでdf -k /homeとすると、使用領域は20KBで、df -k /home/tmpとすると使用領域は10KBになる。  つまり、dfはディレクトリーではなく、あくまでもパーティーションに対して容量を計算して表示しているのだ。試しにdf -aとしてみると(マウントされている)パーティーション一覧が出てくるだろう。  /home/tmp/はディレクトリーツリー上では/home/の下に居るように見えるが、ディスク領域としては別計算になるために、/home/tmp/にいくらものを入れてもdf -k /homeとした時に結果が変わらなかったのだ。なぜ別計算になるかというとあなたがそう設定した(/homeにパーティションをマウントして/home/tmpにパーティションをマウントした)からだ。  これに対して、パーティションが変わってもディレクトリーツリーの下にあるものの容量を調べるにはdfではなくってduを使うと良いだろう。

preiades
質問者

補足

ご回答ありがとうございます。 df -k /homeとすると、使用領域は10KBで、 df -k /home/tmpとすると使用領域は20KBになる。 と読み変えて質問させていただきます。 もし /home/tmp2/bbb 10KB というファイルが存在しない状態でdf -k /homeとしたとき、 使用領域は0KBという理解でいいのでしょうか? それとも、 /home/tmp/ /home/tmp2/ というディレクトリは存在するので、 /homeのパーティーションには各ディレクトリの定義情報(名前や権限など)に 必要な容量のみ含むことになるのでしょうか? /home/tmp2/bbbのファイルサイズとdf -k /homeの結果表示される数値が違うので、 そういった情報も保持しているのかと考えました。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

/homeが所属するパーティションの情報です。

参考URL:
http://www.linux.or.jp/JM/html/GNU_fileutils/man1/df.1.html

関連するQ&A