ls -l ファイルの見かけのサイズが表示されます。これは、プログラムがファイルを最初から最後まで読み取った場合に読み取るバイト数です。 du 「ディスク上」のファイルのサイズがわかります。
 デフォルトでは、du ファイルのサイズをディスク ブロックの数で示しますが、 -h を使用することもできます 代わりに人間が読める単位を取得します。 du のマニュアルも参照してください 
 GNU coreutil の du では、 (これはおそらく Linux にあるものです)、-b バイトを取得するには --apparent-size を意味します オプション。これは、ディスクで実際に使用されているバイト数を取得するために使用するものではありません。代わりに --block-size=1 を使用してください または -B 1 .
 GNU ls を使用 、 ls -s --block-size=1 を行うこともできます ファイルに。これは du -B 1 と同じ数になります 
例:
$ ls -l file
-rw-r--r--  1 myself wheel  536870912 Apr  8 11:44 file
$ ls -lh file
-rw-r--r--  1 myself wheel   512M Apr  8 11:44 file
$ du -h file
24K    file
$ du -B 1 file
24576   file
$ ls -s --block-size=1 file
24576 file
これは、これがディスク上で約 24 KB を占める 512 MB のファイルであることを意味します。 スパースです ファイル (ほとんどの場合、実際にはディスクに書き込まれるのではなく、ファイル内の論理的な「穴」として表されるゼロ)。スパース ファイルは、事前に割り当てられた大きなファイルを操作する場合によく使用されます。仮想マシンやスワップ ファイルなどのディスク イメージ。スパース ファイルの作成は高速ですが、ゼロで埋めるのは時間がかかります (そして不要です)。
 fallocate のマニュアルも参照してください Linux システムで。
次のようにファイル サイズをバイト単位で取得します:
actualsize=$(du -b "${file}" | cut -f 1)