- 締切済み
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して得られる情報は、 具体的には何を意味しているのでしょうか? 数値に変化がないということが、何の情報を取得しているからなのかがわかりません。 参考サイトなど調べましたが、見つけることができませんでした。 ご教授いただければ幸いです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 山田 太郎(@testman199)
- ベストアンサー率17% (438/2463)
UNIXの基礎的な話になるのですが、 OSから見ればディレクトリも1ファイルでしかありません。 よって以下の通りです >/homeのパーティーションには各ディレクトリの定義情報(名前や権限など)に >必要な容量のみ含むことになるのでしょうか?
- anmochi
- ベストアンサー率65% (1332/2045)
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を使うと良いだろう。
- D-Matsu
- ベストアンサー率45% (1080/2394)
/homeが所属するパーティションの情報です。
補足
ご回答ありがとうございます。 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の結果表示される数値が違うので、 そういった情報も保持しているのかと考えました。