回答:
そのディレクトリに含まれるファイルに関するメタデータ(名前を含む)を保存するために必要な初期サイズです。初期割り当ては1セクターのサイズに等しくなりますが、必要に応じてそれを超えることができます。一度割り当てられると、断片化を減らすために、ファイルが削除されてもスペースは解放されません。
例えば:
$ mkdir testdir
$ cd testdir
$ ls -ld .
drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:28 ./
$ for ((i=0; i<1000; i++)); do touch some_longish_file_name_$i; done
$ ls -ld .
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
$ rm some_longish_file_name_*
$ ls -ld .
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
$ cd ..
$ ls -ld testdir
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 testdir/
$ rmdir testdir ; mkdir testdir
$ ls -ld testdir
drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:29 testdir/
ファイルシステムによっては、4096バイトが最小の割り当て単位になる場合があります。そのため、ディレクトリには4096があります。
同じことがファイルにも当てはまります。一部のファイルが4096未満を報告する場合でも、実際にはディスクから少なくとも4096のストレージを使用しています。
ファイルシステムに依存します。ext2 / 3/4では4096です。reiserfsでは9608(my $HOME
)1032(/tmp
)または48(一部のdir /tmp
)になります。
ext2 / 3/4ブロックのデフォルトでは4096であり、ファイルはそれより小さくすることはできません。ファイルが小さい場合は、とにかくブロック全体がかかります。ディレクトリの論理サイズについて尋ねるのは無意味であり、この情報はおそらくディスク上にないため、ブロックのサイズにブロックの数を乗じたもの、つまり使用された物理スペースを報告する必要があります。
actual
ファイルサイズを報告します。
\0
、バイナリファイルの正当な文字であるファイルの終了位置を見つけることができません。PS。FSを保存しないFSを作成することは可能ですが、extを使い慣れていない(そしておそらく他の人気のない)可能性があります。