(ls) コマンドが正しいサイズを表示しない - 奇妙な出力

(ls) コマンドが正しいサイズを表示しない - 奇妙な出力

ハードドライブ上のファイルのサイズを正確なバイト単位で検索しようとしていますが、サイズが大きすぎるたびに数字が奇妙になります(例:1.98329e+12)。これを停止したり、正しいバイトに変換したりできますか?

コマンドは

ls -lR | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'

正確なバイト図:バイト単位の正確な図

奇妙な数字の写真:奇妙なデジタル写真

  • 正確なバイト表示を停止する前のカットオフポイントは約500GBのようです。
  • du -sbこのコマンドは、ディレクトリのサイズに関係なく、正しいバイトを正しく表示します。
  • Ubuntu Gnome 15.10 64ビット(日本語と英語)とLinux Mint 17.3 Cinnamon 64ビット(日本語)を試しました。
  • 私のドライブはNTFSなので、1つをext4にフォーマットしてファイルをコピーしてみました。結果はNTFSと同じです。

ベストアンサー1

ls数字の出力方法とは何の関係もありませんawk

マニュアルページは、デフォルトのawk数値出力形式があることを示しています.6g。これは、2倍の浮動小数点数が指数形式(表示内容)または6桁精度の10進形式を使用して出力されることを意味します。

以下のように明示的な出力形式に変更できます。

echo 123456789012345 | awk '{printf "Total: %.6g\n", $1}'
Total: 1.23457e+14

echo 123456789012345 | awk '{printf "Total: %.0f\n", $1}'
Total: 123456789012345

おすすめ記事