ハードドライブ上のファイルのサイズを正確なバイト単位で検索しようとしていますが、サイズが大きすぎるたびに数字が奇妙になります(例: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