df -h は以下を表示します。
df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ada0p2 1.9G 256M 1.5G 14% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ada0p4 804G 34G 706G 5% /usr
/dev/ada0p5 93G 3.5G 82G 4% /var
ただし、du -shは次のようになります。
du -sh /var
3.5G /var
なぜ? dfでは93Gはもはやスペースがないというのですが、/var/ディレクトリのファイルサイズを確認してみると3.5Gに達すると言いますか?
なぜこれを説明できる人がいますか?
答え1
まず、あなたの質問自体は非常に興味深いです。 df ツールと du ツールは Linux で異なる動作をします。
Linuxのマニュアルページによると
du - estimate file space usage
df - report file system disk space usage
dfはファイルシステムレベルで動作し、duはファイルレベルで動作するため、開かれたファイル記述子があればduはそれを報告しますが、dfは報告しません。