コマンドラインから.tar.gzファイル内の非圧縮ファイルデータの合計サイズを抽出するにはどうすればよいですか?
98626 次
7 に答える
72
これは、任意のファイル サイズで機能します。
zcat archive.tar.gz | wc -c
4Gb より小さいファイルの場合、 gzipで-lオプションを使用することもできます。
$ gzip -l compressed.tar.gz
compressed uncompressed ratio uncompressed_name
132 10240 99.1% compressed.tar
于 2010-04-30T12:15:31.710 に答える
41
これにより、抽出されたファイルの合計コンテンツ サイズが合計されます。
$ tar tzvf archive.tar.gz | sed 's/ \+/ /g' | cut -f3 -d' ' | sed '2,$s/^/+ /' | paste -sd' ' | bc
出力はバイト単位で与えられます。
説明:tar tzvf
のような詳細な形式でアーカイブ内のファイルを一覧表示しますls -l
。sed
ファイルサイズフィールドをcut
分離します。2 番目sed
は、最初のサイズを除くすべてのサイズの前に + を置き、paste
それらを連結して、 によって評価される合計式を与えbc
ます。
これにはメタデータが含まれていないため、ファイルを抽出するときにファイルが占めるディスク容量はさらに大きくなることに注意してください。非常に小さなファイルが多数ある場合は、何倍にもなる可能性があります。
于 2012-07-30T12:32:25.973 に答える
-2
tar ファイルは、gzip、bzip2、lzip、compress、lzma などの別のプログラムでフィルタリングされるまで、またはフィルタリングされない限り、解凍されます。tar ファイルのファイル サイズは、抽出されたファイルと同じで、おそらく 1kb 未満です。有効な tarball にするために追加されたヘッダー情報。
于 2011-06-06T09:02:38.490 に答える