ls -ls 出力にファイルサイズより大きいブロック数が表示されます。

ls -ls 出力にファイルサイズより大きいブロック数が表示されます。

私が知る限り、 "-s"オプションを持つlsコマンドはファイルサイズをブロック単位で印刷し、lsはブロックサイズとして1024を使用しますが、奇妙なことを見つけました。

理解を深めるために、ls -ls コマンドの次の出力を検討してください。

12-rw-r--r--. 1 ルート 10240 7月15日 19:22 z

ファイルサイズが10240バイト、ブロックサイズが1024なので、このファイルのブロック数は10240/1024 = 10ブロックですが、なぜls12ブロックで表示されるのでしょうか。

挨拶

ベストアンサー1

ここで実際に報告されるのは、lsファイルに割り当てられたブロックサイズです。サイズは12KBです。

このサイズは伝統的に512Bの「ブロック」と報告されていますが、その理由は古代のUnixシステムでは実際に512バイトのブロックが多かったからです。ただし、ブロックサイズはファイルシステムによって異なり、ls同じ単位を使用します。 GNUツールは512Bの代わりに1kBを単位として使用します。キロバイトが人間に0.5キロバイトよりも意味があるからです。

Ext4やその他の共通ファイルシステムのデフォルト値は4kBブロックです。したがって、10240バイトのファイルは、サイズが12kBの3つのブロックを占めます。

また、見ることができますファイルブロックサイズ - statとlsの違いそしてブロックサイズとクラスタサイズの違い

おすすめ記事