- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:unix(FreeBSD)でディレクトリ容量計算すると2倍になる)
unix(FreeBSD)でディレクトリ容量計算すると2倍になる
このQ&Aのポイント
- Unix(FreeBSD)でのディレクトリ容量計算において、結果が2倍になる問題が発生しています。
- ディレクトリ内全容量を調べるために使用している「du -s」コマンドは、TeraTermでは正しい値を取得できるが、PHPのexec()関数では結果が2倍になってしまいます。
- この問題については、FreeBSDのバグとして報告されているものがありますが、原因や対処方法についてはまだ明確にされていないようです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
明示的に -k オプションを付けて実行してください。 dfコマンドは、 ・環境変数 BLOCKSIZE を設定している場合、その指定に従った単位で容量を返す ・環境変数 BLOCKSIZE が設定されていない場合、512Bytes(セクタ)単位の容量を返す ような仕様になっています。 おそらくログインしている環境では BLOCKSIZE=K が指定されていて、 PHPの実行環境では、BLOCKSIZE が指定されていないのでしょう。 明示的にオプション -k を付けて df を実行すれば、環境変数 BLOCKSIZE は無視して、キロバイト単位での容量を返します。
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.4
えぇと, 「困ったらマニュアルを見ればいい」んではないかな. 「man」って知ってます?
- D-Matsu
- ベストアンサー率45% (1080/2394)
回答No.3
> BSDの本 一冊持っておくと便利なのを紹介しておきます。 Linux(RHEL) / FreeBSD / Solaris対応。
質問者
お礼
見てみます。 ありがとうございました。
- trapezium
- ベストアンサー率62% (276/442)
回答No.2
見てるマニュアルも違うんじゃないでしょうか? http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=du&dir=jpman-6.2.2%2Fman§=0 とか原文なら http://www.freebsd.org/cgi/man.cgi で検索するのが楽です。
質問者
お礼
なるほどその通りです。 unixはみな同じと思ってunixのマニュアルを買っていたのですが… BSDの本も必要ですね。ありがとうございました。
お礼
ありがとうございます。 "du -sk" としたら正しく動きました。 -k オプションは私の持っているコマンド辞典にはないですね。 BSDのバグじゃなくてよかったです。助かりました。