GNU/Linux >> Linux の 問題 >  >> Linux

シェルでファイルサイズ(バイト単位)を取得するポータブルな方法は?

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 などでは動作しません。


Linux
  1. ファイル記述子とシェルスクリプト?

  2. ディレクトリサイズの計算の違いは?

  3. Linux –デフォルトルートの送信元アドレスを取得するためのポータブルな方法?

  1. ファイルの作成/作成時間を取得しますか?

  2. LsとHexdumpがファイルサイズについて意見が一致しないのはなぜですか?

  3. ディレクトリ内のファイル サイズがゼロ (0) バイトのすべてのファイルを再帰的に検索する方法

  1. ファイルをインプレースで変更する方法は?

  2. .bz2 ファイルの解凍後のサイズを確認する方法はありますか?

  3. Linuxでファイルの物理サイズを取得するには?