ls -s の動作を理解する

ls -s の動作を理解する

ls -l ディレクトリ内で実行した結果は次のとおりです

total 28
-rwxrw-r-- 1 pr3t3nd pr3t3nd  188 Nov 20 20:28 exo1.sh
-rwxrw-r-- 1 pr3t3nd pr3t3nd  202 Nov 20 20:52 exo2_fonction.sh
-rwxrw-r-- 1 pr3t3nd pr3t3nd  176 Nov 20 20:30 exo2.sh
-rw-rw-r-- 1 pr3t3nd pr3t3nd  364 Nov 20 22:24 file
-rw-rw-r-- 1 pr3t3nd pr3t3nd 2912 Nov 20 23:47 file2
drwxrwxr-x 2 pr3t3nd pr3t3nd 4096 Nov 20 23:35 rep
-rwxrw-r-- 1 pr3t3nd pr3t3nd  102 Nov 20 23:45 script.sh

ls -s同じディレクトリで実行した結果は次のとおりです

total 28
4 exo1.sh           4 exo2.sh  4 file2  4 script.sh
4 exo2_fonction.sh  4 file     4 rep

すべてのファイルのサイズが 4 なのはなぜですか?

答え1

ls -l5列目にファイルサイズを表示します。ls -sファイルサイズは表示されません。表示されるのは割り当てられたサイズそれは同じことではありません。

ファイルのサイズはファイルのプロパティです。ファイルの内容を構成するバイト数であり、それ以上でもそれ以下でもありません。

ファイルの割り当てサイズは、ファイルの保存方法の特性です。ほとんどの場合、割り当てサイズは実際のサイズよりわずかに大きくなります。これは、ファイルシステムが領域をブロックに分割し、割り当てサイズがファイルの保存に使用されるブロックの合計サイズであるためです。ファイルのサイズがブロック サイズの倍数でない限り、完全に使用されないブロックが存在します。

サイズが 4kB 未満で、割り当てられたサイズがちょうど 4kB のファイルが表示されています。これは非常によくあることです。つまり、ブロック サイズが 4kB のファイル システムがあるということです。

参照`ls -s` が「0」を出力するのはいつですか?そしてファイル ブロック サイズ - stat と ls の違い

関連情報