ファイルサイズを表示する簡単なヘルパー関数を書いています。
これまでのコードは次のとおりです。
find . -type f -size +10M -printf "%f -> %s B\n"
私が得た結果は次のとおりです。
clay-banks--Ni2fpLUgRI-unsplash.jpg -> 181794593 B
jake-nackos-_kdX2vPc33U-unsplash.jpg -> 448148323 B
73-738467_nature-wallpapers-high-quality-images-hd-desktop-images.jpg -> 131115725 B
しかし、ファイルサイズをMB単位で表示したいと思います。
bのように動作するにはどうすれば修正できますか?
clay-banks--Ni2fpLUgRI-unsplash.jpg -> 173 MB
jake-nackos-_kdX2vPc33U-unsplash.jpg -> 427 MB
73-738467_nature-wallpapers-high-quality-images-hd-desktop-images.jpg -> 125 MB
ベストアンサー1
少なくともGNUベースのシステムでは、必要な形式を使用してstat
取得できる必要があります。たとえば、次のようになります。numfmt
find . -type f -size +10M -printf "%f -> " -exec sh -c '
stat -c "%s" "$1" | numfmt --to-unit=1048576 --format="%.0f MB"
' sh {} \;
MBまたはMiBが必要かどうかに応じて--to-unit=1048576
変更してください。--to-unit=1000000