[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [http://www.bzip.org bzip2] {en} ist eines der am häufigsten genutzten freien Komprimierungsprogramme für das Terminal. Im Vergleich zu [:gzip:] verwendet bzip2 zum Packen einen anderen Algorithmus. Ansonsten sind Verwendung und Syntax sehr ähnlich. Mit bzip2 komprimierte Dateien haben in der Regel die Dateiendung '''.bz2'''. Es gibt es auch den Befehl `bunzip2`, welcher dem Aufruf von bzip2 mit der [#Optionen Option zur Dekomprimierung] entspricht. Daher wird im Folgenden nur bzip2 weiter besprochen. = Syntax = Der allgemeine Aufruf von bzip2 erfolgt im Terminal [1] über: {{{#!vorlage Befehl bzip2 [OPTIONEN] DATEI(EN) }}} Um eine Datei zu packen, nutzt man den Aufruf: {{{#!vorlage Befehl bzip2 eine_datei.txt }}} Es entsteht die komprimierte Datei '''eine_datei.txt.bz2'''. Ruft man bzip2 mit mehreren Dateien auf {{{#!vorlage Befehl bzip2 datei_1.txt datei_2.txt datei_3.txt }}} so entstehen drei bz2-Dateien '''datei_1.txt.bz2''', '''datei_2.txt.bz2''' und '''datei_3.txt.bz2'''. {{{#!vorlage Hinweis Beim Packen einer Datei mit bzip2 wird standardmäßig die Originaldatei gelöscht, d.h. es existiert nur noch die gepackte Datei. Umgekehrt wird beim Entpacken die gepackte Datei gelöscht und es existiert nur noch die Originaldatei. }}} = Optionen = || Option || Beschreibung || ||`-1` ... -`9`||Gibt den Komprimierungsgrade an. `1` ist die schlechteste aber schnellste Komprimierung, `9` die beste aber langsamste Komprimierung. Voreinstellung ist 5.|| ||`-f`||Eventuell vorhandene Dateien werden ohne Rückfrage überschrieben.|| ||`-d`||Decompress, d.h. die angegebene Datei wird in das aktuelle Verzeichnis entpackt.|| ||`-c`||Schreibt auf die Standardausgabe (also in der Regel den Bildschirm).|| ||`-q`||Unterdrückt alle (Warn-) Meldungen. Dies ist hilfreich, wenn eine größere Datei [:Shell/Prozesssteuerung:im Hintergrund] ge- bzw. entpackt werden soll.|| ||`-v`||Gibt mehr Meldung als üblich aus.|| ||`-t`||Testet die Integrität der Datei.|| ||`-k`||Die Originaldatei wird nicht gelöscht.|| ||`-h`||Zeigt eine vollständige Übersicht über alle Optionen.|| Eine detaillierte Beschreibung erhält man auch in den [:Shell/man:man-Pages] oder [:info:info-Seiten] zu bzip2. = Beispiele = 1. Es wird eine Datei entpackt. Da keine weiteren Angaben gemacht werden, befindet sich die entpacktet Datei '''archiv.txt''' im aktuellen Verzeichnis (von dem aus bzip2 aufgerufen wurde): {{{#!vorlage Befehl bzip2 -d archiv.txt.bz2 }}} 1. Es wird eine Datei auf die Standardausgabe entpackt und mit [:Shell/grep:grep] nach einer Zeichenkette durchsucht. Dabei kommt eine [:Shell/Umleitungen:Pipeline] zum Einsatz: {{{#!vorlage Befehl bzip2 -cd archiv.txt.bz2 | grep ZEICHENKETTE }}} = bzexe = Mit Hilfe von `bzexe` lassen sich selbstextrahierende Dateien erzeugen. Dies ist besonders für (größere) Programme oder Skripte geeignet, da diese nach dem Entpacken direkt ausgeführt werden. Da Informationen für das Entpacken in die gepackte Datei mit integriert werden, lohnt sich bzexe nur für größere Programme, da bei kleineren Dateien die gepackte, selbstextrahierende Datei sonst größer wäre als die Originaldatei selbst. Die allgemeine Syntax von bzexe lautet: {{{#!vorlage Befehl bzexe DATEI }}} bzexe kennt nur eine Option: || Option || Beschreibung || ||`-d`||Entpackt die selbstextrahierende Datei.|| {{{#!vorlage Hinweis In die selbstextrahierende Datei wird nicht der Dekomprimierungsalgorithmus an sich integriert, sondern es wird ein (kurzes) Shellskript in die Datei integriert, welche bzip2 aufruft. Daher funktioniert das Selbst-extrahieren nur auf Systemen, wo bzip2 über die Standardsuchpfade gefunden wird. Dies sollte jedoch bei den meisten Linuxsystemen der Fall sein. }}} = Alternative = '''bzip2''' hat den Nachteil, dass es nur mit einem Kern arbeitet, auch wenn der Prozessor mehrere Kerne hat. Diesen Nachteil vermeidet '''pbzip2''', das alle Prozessorkerne nutzt und somit wesentlich schneller packt. Die Syntax ist im wesentlichen die geiche wie bei bzip2. Mit dem Parameter `-p#` kann ggf. die Anzahl der aktiven Prozessorkerne festgelegt werden. Das Programm kann aus den Repositorien installiert werden. Noch schneller packt '''lbzip2''', das ebenfalls aus den Repositorien installiert werden kann. = Programme für gepackte Dateien = Es gibt eine Reihe von Programmen, die das Anschauen bzw. Durchsuchen von '''.bz2'''-Dateien im Terminal vereinfachen. Die vorhandenen Werkzeuge sind in der Standardinstallation von Ubuntu: * '''bzcat''', '''bzcmp''', '''bzdiff''', '''bzegrep''', '''bzgrep''', '''bzfgrep''', '''bzless''' und '''bzip2recover''' Die Namen leiten sich von den entsprechenden [:Shell/Befehlsübersicht:Shell-Befehlen] ab und haben grundsätzlich auch die gleiche Funktionalität. Unter Umständen stehen aber nicht alle Optionen des "Original"-Befehls zur Verfügung. Eine Ausnahme bildet der Befehl `bzip2recover`, mit dem beschädigte '''.bz2'''-Dateien repariert werden können. Die allgemeine Syntax lautet: {{{#!vorlage Befehl bzip2recover DEFEKTE.bz2 }}} = Links = * [:gzip:] - Alternative zu bzip2 * [:Archivmanager:] {Übersicht} Programmübersicht # tag: Shell, Packer, bz2, Komprimierung, Archivmanager, Datensicherung