我确信目录文件的信息比 4096 字节少得多。我知道扇区大小是 4096 字节。但是比那个小的普通文件确实存在。
为什么 Unix 为每个文件夹保留 4096 个字节?
har*_*ymc 32
这是存储该目录中包含的文件(包括名称)的元数据所需的初始大小。初始分配等于一个扇区的大小,但如有必要,可以增长到更高。分配后,如果删除文件,则不会释放空间,以减少碎片。
例如:
$ 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/
Run Code Online (Sandbox Code Playgroud)
Pab*_*ruz 11
有时 4096 字节是某些文件系统的最小分配单元。这就是目录有 4096 的原因。
同样的事情也适用于文件。尽管某些文件可能报告少于 4096,但它们实际上从磁盘中占用了至少 4096 的存储空间。
4096 保留用于减少碎片,因为通常包含的元数据的实际大小会根据目录内容而波动。如果它随着时间的推移不断增长和缩小(比如它包含日志文件或动态内容),它可能会损害性能。这可能不会发生在一个文件夹中,但在整个文件系统中它会迅速增加。
归档时间: |
|
查看次数: |
28295 次 |
最近记录: |