web-dev-qa-db-ja.com

シェルスクリプトからファイルサイズをバイト単位で取得する方法は?

AppleのITMSP Transporterファイル用のXMLファイルを記述して、メタデータをApp Storeにアップロードするスクリプトを作成しようとしています。スクリーンショットの要件は、ファイル名、MD5チェックサム、およびバイト単位のファイルサイズです。

MD5チェックサムは簡単で、md5 -q image.pngで取得できます

しかし、画像ファイルのバイトサイズを取得しようとして苦労しています。 du -k image.pngコマンドを使用すると、キロバイト単位で切り上げられたサイズが返されます。たとえば、実際のサイズが5722バイトの場合、duは8(8Kまたは8192バイトなど)を返しますが、これは正しくありません。 duのデフォルトは512バイトのチャンクですが、それでも値を切り上げます(したがって、8ではなく16を返します)。

Lion OSX 10.7.4を実行しています。

30
jsherk

1つの簡単なアプローチは次のとおりです。

stat -f%z image.png

statは通常、大量のデータを吐き出しますが、%z formatは、サイズをバイト単位で選択します。

65
duskwuff

OSXではstat -f "%z bytes"

6
pixel 67