[[Vorlage(Getestet, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [https://lz4.github.io/lz4/ lz4] {en} ist eine Komprimierungsalgorithmus und -programm, welches auf eine sehr hohe Kompressions- / Dekompressionsgeschwindiglkeit ausgelegt ist und weniger auf eine hohe Kompressionsrate. Der Einsatz von lz4 ist also dann sinnvoll, wenn die Geschwindigkeit der (De-) Komprimierung wichtiger ist als die Größe der erzeugten Datei. lz4 kann unter anderem bei den Dateisystemen [:SquashFS:] und [https://zfsonlinux.org/ ZFS] {en} als Komprimierungsmethode gewählt werden. = Installation = lz4 ist in den Ubuntu Paketquellen enthalten und kann über das Paket {{{#!vorlage Paketinstallation lz4 }}} installiert werden. = Nutzung = Die allgemeine Syntax von lz4 lautet: {{{#!vorlage Befehl lz4 [OPTIONEN] DATEI }}} Standardmäßig kann lz4 nur eine Datei auf einmal komprimieren. Das Packen mehrere Eingabedateien in eine Ausgabedatei ist aber über einen [#umweg Umweg] möglich. == Dateien packen == Der Aufruf von z.B. {{{#!vorlage Befehl lz4 data.txt }}} würde die Datei '''data.txt''' mit der schnellsten Kompressionsmethode komprimieren (Voreinstellung von lz4) und die komprimierten Daten in die Datei '''data.txt.lz4''' speichern. Als Ausgabe bei der Ausführung des Befehls erhält man: {{{ Compressed filename will be : data.txt.lz4 Compressed 1201 bytes into 628 bytes ==> 52.29% }}} Es wird also ausgegeben, welche Ausgabedatei generiert wird und wie hoch der Komprimierungsgrad ist. lz4 kennt eine ganze Reihe von Optionen: {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel" :>Optionen von lz4 +++ Option <:>Erklärung +++ `-m DATEI1 DATEI2 DATEI3 ...` Es werden mehrere Dateien als Eingabe übergeben. Für jede Datei wird ein eigene Ausgabedatei erzeugt. +++ -r VERZEICHNIS Es werden alle Dateien im Verzeichnis `VERZEICHNIS` gepackt. Für jede Datei wird ein eigene Ausgabedatei erzeugt. +++ `-1` bis `-9` Es der Komprimierungsgrad von `-1` (schnellste Komprimierung, Voreinstellung) bis `-9` (stärkste Komprimierung) genutzt. +++ `-d DATEI.lz4` Entpacken der Datei '''DATEI.lz4''' +++ `-t DATEI.lz4` Integrität des gepackten Datei '''DATEI.lz4''' testen }}} lz4 kennt noch eine ganze Reihe weiterer Optionen, die man sich entweder in der [:Man:]-Page oder über den Aufruf von `lz4 -h` anzeigen lassen kann. [[Anker(umweg)]] == mehrere Dateien in eine lz4-Datei packen == Wie oben bereits erwähnt, kann lz4 standardmäßig nur einzeln packen. Möchte man mehrere Dateien in eine lz4 Datei packen, muss man einen Umweg über [:tar:] gehen: {{{#!vorlage Befehl tar -c DATEIEN | lz4 - AUSGABEDATEI.tar.lz4 }}} Die Dateien `DATEIEN` werden in eine Tar-Archiv gepackt, diese über eine Weiterleitung an lz4 gegeben und dort in die Datei '''AUSGABEDATEI.tar.lz4''' gepackt. == Dateien entpacken == Zum Entpacken dient der Befehl {{{#!vorlage Befehl lz4 -d LZ4-DATEI.lz4 #oder unlz4 LZ4-DATEI.lz4 }}} == Informationen zu gepackter Datei anzeigen == Mit dem Aufruf von {{{#!vorlage Befehl lz4 -t DATEI.lz4 }}} wird für die Integrität der Datei '''DATEI.lz4''' geprüft und gleichzeitig ausgegeben, wie große die Daten unkomprimiert wären. Die Ausgabe sieht z.B so aus: {{{ DATEI.lz4 : decoded 10240 bytes }}} == Benchmarking == lz4 biete eine bzw. zwei Optionen zum Benchmarking, mit der die Komprimierungsgeschwindigkeit des System und der Komprimierungsgrad einer Datei getestet werden kann. Dabei wird keine gepackte lz4 Datei auf dem Laufwerk angelegt. Der Befehl lautet: {{{#!vorlage Befehl lz4 -b5 EINGABEDATEI.txt }}} Dabei würde die Datei '''EINGABEDATEI.txt''' testweise auf Stufe 5 komprimiert und das Ergebnis ausgeben. Statt `5` kann natürlich auch jede anderen Stufe zwischen `1` und `9` angegeben werden. Man kann auch mehrere Kompressionsstufen in einem Durchlauf testen. Mit dem folgenden Befehl von Stufe 1 bis einschließlich Stufe 9: {{{#!vorlage Befehl lz4 -b1 -e9 EINGABEDATEI.txt }}} Die Ausgabe sieht z.B. so aus: {{{ Benchmarking levels from 1 to 9 1#EINGABEDATEI.txt : 2167737 -> 611048 (3.548), 823.0 MB/s ,3704.5 MB/s 2#EINGABEDATEI.txt : 2167737 -> 611048 (3.548), 823.3 MB/s ,3703.0 MB/s 3#EINGABEDATEI.txt : 2167737 -> 335374 (6.464), 174.1 MB/s ,4175.3 MB/s 4#EINGABEDATEI.txt : 2167737 -> 293060 (7.397), 139.1 MB/s ,4783.2 MB/s 5#EINGABEDATEI.txt : 2167737 -> 269463 (8.045), 111.1 MB/s ,5350.9 MB/s 6#EINGABEDATEI.txt : 2167737 -> 258674 (8.380), 87.6 MB/s ,5726.2 MB/s 7#EINGABEDATEI.txt : 2167737 -> 254714 (8.510), 73.3 MB/s ,5893.3 MB/s 8#EINGABEDATEI.txt : 2167737 -> 253278 (8.559), 65.6 MB/s ,5947.9 MB/s 9#EINGABEDATEI.txt : 2167737 -> 253039 (8.567), 64.7 MB/s ,5961.3 MB/s }}} Ausgegeben wird also die Kompressionsstufe, die Ausgangsgröße der Datei, die Größe, die die komprimierte Datei hätte, der Kompressionsfaktor sowie der erreichte Datendurchsatz beim Komprimieren und Dekomprimieren. = Links = == Intern == * [:Archivmanager:] {Übersicht} Übersichtsartikel zu Archivierungsmethoden und -Programme == Extern == * [https://lz4.github.io/lz4/ lz4] {en} - Homepage von lz4 * [github:lz4/lz4: Projektseite bei Github] * [github:lz4/lz4/blob/dev/doc/lz4_Block_format.md:technische Erklärung], wie lz4 komprimiert #tag: Shell, Packprogramme, Archivmanager, Komprimierung