.bz2ファイルの解凍サイズを決定する方法はありますか?


回答:


36

他の人が述べたように、bzip2は多くの情報を提供しません。ただし、この手法は機能します。ファイルを解凍する必要があります、解凍したデータをディスクに書き込む必要はありません。これは、「十分な」解決策です。

$ ls -l foo.bz2
-rw-r--r-- 1 ~quack ~quack 2364418 Jul  4 11:15 foo.bz2

$ bzcat foo.bz2 | wc -c         # bzcat decompresses to stdout, wc -c counts bytes
2928640                         # number of bytes of decompressed data

その出力を他の何かにパイプして、人間が読める形式にすることができます。

$ ls -lh foo.bz2
-rw-r--r-- 1 quack quack 2.3M Jul  4 11:15 foo.bz2

$ bzcat foo.bz2 | wc -c | perl -lne 'printf("%.2fM\n", $_/1024/1024)'
2.79M

9
まあ、それは計算に100%のCPUのわずか5分かかりました。
endolith

2
のみ?そして、それはディスクをいっぱいにしますか?古いlinuxインストールの圧縮されたtarballを取得しましたが、これはわずか407megでありながら、古い貧しいサーバーを抽出するのに30〜45分かかりました。ディスクへの書き込みも含まれていたので、時間を計るにはそのスクリプトを実行する必要があります。30分で屋に戻る... :)
クワックキホーテ

もちろん、最初のテストでは最小のファイルを選択しました。140 MB圧縮-> 3 GB非圧縮。大きいファイルは5 GB圧縮されています...
endolith

あわや...レムのノウハウ5GBsがあることが判明する方法を大...それがこのXDを経由して、それを把握するためにかかる時間
キホーテいんちき

-3

解凍せずに.bz拡張子のテキストファイルを読み取る。

bzcat dbtax_ext_en.ttl.bz2 |zless

1
bzcatとzlessはこのように一緒に動作しません。「bzcat file.bz2 | less」または「bzless file.bz2」を使用するか、gzipされたファイルがある場合は「zcat file.gz | less」または「zless file.gz」を使用します。実際、zlessのマニュアルページには、「Zlessは標準入力経由でパイプされた圧縮データでは動作しません。入力ファイルを引数として指定する必要があります」と書かれています。
ニック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.