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.