Gibt es eine Möglichkeit, die dekomprimierte Größe einer BZ2-Datei zu bestimmen?


34

Gibt es eine Möglichkeit, die dekomprimierte Größe einer .bz2-Datei zu drucken, ohne die gesamte Datei zu dekomprimieren?


Es gibt also keine Metadaten zur Originaldatei in der bzip-Ausgabe? > :(
— Endolith

Nicht, dass ich einen Hinweis darauf gesehen hätte. : /
— Quack Quixote

Antworten:


36

Wie von anderen angemerkt, bietet bzip2 nicht viele Informationen. Aber diese Technik funktioniert - Sie haben die Datei entpacken, aber Sie werden nicht die dekomprimierten Daten auf die Festplatte zu schreiben, die eine „gut genug“ Lösung für Sie können sein:

$ 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

Sie können diese Ausgabe in etwas anderes umleiten, um eine für Menschen lesbare Form zu erhalten:

$ 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
Nun, die Berechnung dauerte nur fünf Minuten mit 100% CPU.
— Endolith

2
nur? UND es würde eine Festplatte füllen? Ich habe ein komprimiertes Tarball einer alten Linux-Installation, die nur 407 Megabyte groß ist, aber für das Extrahieren meines armen alten Servers 30-45 Minuten benötigt hat. Dazu gehörte das Schreiben auf die Festplatte, aber ich muss das Skript ausführen, um die Zeit zu bestimmen.
— Kommen Sie

Ich habe natürlich die kleinste Datei für den ersten Test ausgewählt. 140 MB komprimiert -> 3 GB nicht komprimiert. Die größeren Dateien sind 5 GB komprimiert ...
— Endolith

heh .. lass mich wissen, wie groß die 5GBs werden ... und wie lange es dauert, es über diesen XD
— Quacksalber herauszufinden

-3

Zum Lesen der .bz-Erweiterungstextdatei ohne Entpacken.

bzcat dbtax_ext_en.ttl.bz2 |zless

1
bzcat und zless arbeiten so nicht zusammen. Verwenden Sie "bzcat file.bz2 | less" oder "bzless file.bz2" oder, wenn Sie eine gzip-Datei haben, "zcat file.gz | less" oder "zless file.gz". In der Manpage für Zless heißt es sogar: "Zless funktioniert nicht mit komprimierten Daten, die über die Standardeingabe weitergeleitet werden. Es ist erforderlich, dass Eingabedateien als Argumente angegeben werden."
— Nick Russo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.