"ls -l"このディレクトリの物理サイズは報告しますが、ファイルの論理サイズは報告しません。

私はls -lディレクトリの物理サイズを報告し、同時にファイルの論理サイズも報告することを発見しました。たとえば、次の例の出力は次のようになりますls -l

drwxr-xr-x 2 chris chris 36864 2017-04-23 18:14 dir1 
-rw-r--r-- 1 chris chris 6     2017-04-23 18:10 file1.txt

dir1サイズは36864バイトで4096バイトの倍数です(したがって物理サイズである可能性が高い)。

そしてfile1.txtサイズは6バイト(論理サイズ)です。

ベストアンサー1

実際にlsカーネルが指示するすべての内容を報告します。つまり、ファイルがディレクトリであるかどうかに応じて、サイズに関して他の操作は実行されません。 Linuxは論理サイズを報告します。しかし、ディレクトリの論理サイズはそれほど興味深い属性ではありません。これはファイルシステムの形式によって異なります。

ほとんどのLinuxディストリビューションでは、デフォルトのファイルシステムタイプはおそらくあなたが使用しているext4です。 Ext4はディレクトリにブロック全体を割り当て、必要に応じてそのブロック内のスペースを管理します。ディレクトリが縮小されるとブロックも解放されません(dir1その中のファイルをすべて削除しても9ブロックは残ります)。ディレクトリであるファイルのサイズを尋ねる場合、ext4はディレクトリに割り当てられたサイズを返します。これは常に整数ブロックです。

ファイルシステムの種類によって異なります。たとえば、Btrfsの場合、実験によると、ディレクトリサイズは2の倍数になります。

おすすめ記事