Befehl: lpq1
LPQ1 ist ein Dateikomprimierer und -archivierer.
Syntax:
lpq1 {a|x|l} Archiv [[-opt] Dateien...]...
Befehle / Optionen:
Befehle:
a = Archiv erstellen und benannte Dateien komprimieren.
x = Aus Archiv extrahieren.
l = Inhalt auflisten.
Der Befehl "a" erstellt ein neues Archiv und fügt die benannten Dateien
hinzu. Wildcards sind zulässig, wenn mit g++ kompiliert wurde. Optionen
und Dateinamen können in beliebiger Reihenfolge angegeben werden.
Optionen gelten nur für Dateinamen nach der Option und überschreiben
vorherige Optionen.
Optionen sind:
-s = Speichern ohne Komprimierung.
-c = Komprimieren (Standard).
Beispiel:
lpq1 a foo.lpq1 a.txt -s b.txt -c c.txt tmp/d.txt /tmp/e.txt
erstellt das Archiv foo.lpq(1) mit 5 Dateien (korrekt: foo.lpq! - 8.3!).
Die Datei b.txt wird ohne Kompression gespeichert. Die anderen 4 Datei-
en werden komprimiert. Falls eine der angegebenen Dateien nicht exi-
stiert, wird sie mit einer Warnung aus dem Archiv weggelassen, während
die verbleibenden Dateien hinzugefügt werden. Ein bestehendes Archiv
kann nicht überschrieben werden. Es muss in der Befehlszeile mindestens
ein Dateiname angegeben sein.
Der "x"-Befehl extrahiert den Inhalt des Archivs und erstellt die Da-
teien genau so, wie sie beim Erstellen des Archivs benannt wurden.
Dateien können nicht überschrieben werden. Falls eine Datei bereits
existiert oder nicht erstellt werden kann, wird sie übersprungen. Zum
Beispiel würde "tmp/d.txt" übersprungen, wenn das aktuelle Verzeichnis
entweder keinen Unterordner tmp hat, tmp schreibgeschützt ist oder
"tmp/d.txt" bereits existiert.
Falls "x" auf eine oder mehrere Dateinamen folgt, werden die Ausgabe-
dateien umbenannt – in der Reihenfolge, in der sie zum Archiv hinzuge-
fügt wurden. Alle verbleibenden Inhalte werden ohne Umbenennung extra-
hiert.
Zum Beispiel:
lpq1 x foo.lpq1 x.txt y.txt (korrekt: foo.lpq! - 8.3!) würde
a.txt als x.txt und b.txt als y.txt extrahieren, anschließend c.txt,
tmp/d.txt und /tmp/e.txt ohne Umbenennung aus dem Archiv entnehmen.
Falls die Befehlszeile mehr Dateinamen enthält als das Archiv, werden
die zusätzlichen Argumente ignoriert. Optionen sind nicht erlaubt.
Der "l"-Befehl (Buchstabe L) listet den Inhalt des Archivs auf. Alle
zusätzlichen Argumente werden ignoriert. Jeder andere Befehl oder das
Fehlen eines Befehls zeigt eine Hilfemeldung an.
Kommentar:
Archive sind "solid" (fest). Man kann nur neue Archive erstellen. Man
kann keine bestehenden Archive ändern. Die Dateinamen werden genau so
gespeichert und extrahiert, wie sie bei der Archiv-Erstellung benannt
wurden, aber Sie haben die Möglichkeit, sie beim Extrahieren umzube-
nennen. Dateien werden niemals überschrieben.
ARCHIVFORMAT:
"lPq", 1, [Dateiname {'\0' Modus usize csize Inhalte}...]...
Die ersten 4 Bytes sind "lPq\x01" (1 ist die Versionsnummer).
Eine Datei wird als ein oder mehrere Blöcke gespeichert. Der Dateiname
wird nur im ersten Block als eine durch NULL terminierter String
gespeichert. Nachfolgende Blöcke beginnen mit einer 0. Der Modus ist
"s", wenn der Block gespeichert wird, und "c", wenn er komprimiert ist.
usize = unkomprimierte Größe als 4-Byte-Big-Endian-Zahl (MSB zuerst).
csize = komprimierte Größe als eine 4-Byte-Big-Endian-Zahl.
Der Inhalt wird direkt aus der Datei kopiert, wenn der Modus "s" ist,
andernfalls aus dem komprimierten Inhalt. Die Länge beträgt genau csize
Bytes.
Dateien werden im lpaq1 7-Format komprimiert, was 387 MB Speicher
erfordert.
Der Modellstatus wird zwischen Dateien beibehalten. lpaq1 ist ein
Context-Mixing-Kompressor. Eine detaillierte Beschreibung des Algorith-
mus findest du in lpaq1.cpp unter:
http://cs.fit.edu/˜mmahoney/compression/.
Beispiel:
Siehe Bereich "Befehle / Optionen".
Siehe auch:
7zdec
arj
bzip2
cabext
gzip
lzip
lzma
lzop
p7zip
slicer
tar
unzip
zip
zoo
Copyright © 2007-2008 Matt Mahoney, Hilfeversion 2023
und 202 von W. Spiegl.
Diese Datei ist abgeleitet vom FreeDOS Spezifikationen-HOWTO.
Vgl. auch die Datei H2Cpying bezüglich der Kopierbedingungen.