wc -c < filename
(単語数の略、-c
バイト数を出力します) は、移植可能な POSIX ソリューションです。一部のスペースが先頭に追加される可能性があるため、出力形式のみがプラットフォーム間で統一されていない可能性があります (Solaris の場合)。
入力リダイレクトを省略しないでください。ファイルが引数として渡されると、バイト数の後にファイル名が出力されます。
バイナリファイルでは動かないのではないかと心配でしたが、LinuxでもSolarisでも問題なく動きます。 wc -c < /usr/bin/wc
で試すことができます .さらに、明示的に指定されていない限り、POSIX ユーティリティはバイナリ ファイルを処理することが保証されています。
サイズを表示するために、独自のプログラム(非常に小さい)を作成することになりました。詳細はこちら:http://fwhacking.blogspot.com/2011/03/bfsize-print-file-size-in-bytes-and.html
私の意見では、一般的な Linux ツールで最もクリーンな 2 つの方法は次のとおりです。
$ stat -c %s /usr/bin/stat
50000
$ wc -c < /usr/bin/wc
36912
しかし、ファイル サイズを取得するためだけにパラメーターを入力したり、出力をパイプしたりしたくないので、独自の bfsize を使用しています。
du
でも 通常、実際のデータ サイズではなくディスク使用量を出力します。GNU coreutils du
ファイルの「見かけのサイズ」をバイト単位で出力できます:
du -b FILE
ただし、BSD、Solaris、macOS などでは動作しません。