ディレクトリサイズが0または4096の理由は何ですか? [コピー]

ディレクトリサイズが0または4096の理由は何ですか? [コピー]
$ ls -l
total 28
drwxrwxrwx 1 t t 4096 May  8  2018  dir1
drwxrwxrwx 1 t t    0 Mar 12  2015  dir2
drwxrwxrwx 1 t t 4096 Jan 17  2014  dir3
drwxrwxrwx 1 t t 4096 Jun 12  2017  dir4
drwxrwxrwx 1 t t    0 Aug 24  2012  dir5

ディレクトリサイズが0または4096の理由は何ですか?

ディレクトリのエントリがinodeに収まるので、ディレクトリのサイズは0ですか?

ディレクトリ内のエントリがそのinodeに収まらず、いくつかのデータブロックが必要なので、ディレクトリのサイズがゼロ以外ではありませんか?

ディレクトリのゼロ以外のサイズが常に4096であるのはなぜですか?

ありがとうございます。

私の観察はext4ファイルシステムとNTFSファイルシステムで同じです。これは、両方のファイルシステムタイプが同様の方法でディレクトリを実装することを意味しますか?

ベストアンサー1

一部のファイルシステムには、非常に小さなディレクトリ用のinodeスペースがあります。ただし、ディレクトリがその領域に入るのに十分な大きさになると、オペレーティングシステムはファイル割り当て単位全体を割り当てます。あなたの場合は明らかに4096バイトです。

ext4では、inline_data ext4オプションで有効になります。

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inline_Directories

おすすめ記事