Packer-Kurs 2/2

von
Andreas Schlick

Einführung:
Dieser Kurs widmet sich in zwei Teilen den Packern/Archivern. Im ersten Teil werden die meistverbreitetsten Packer kurz vorgestellt und ein Geschwindigkeitsvergleich gemacht. Im zweiten Teil geht es um die Bedienung und die Optionen.

  1. Auflistung und Geschwindigkeitsvergleich
  2. Bedienung und Optionen

Im diesem zweiten Teil beschreibe ich die Bedienung der meistbenutzten Packer. Ich will und kann hier keine vollständige Beschreibung aller möglichen Optionen und Funktionen geben, die die einzelnen Packer bieten, sondern nur eine Übersicht, wie man die wichtigsten Sachen macht. Für eine genaue Erklärung schauen Sie sich bitte die entsprechende Anleitung an.


LZX / LhA / GZip / tar / UnTGZ / UnARJ / UnRAR / Übersicht

LZX 1.21r

Aufruf-Maske:

    LZX [-<Optionen>] <Kommandos> <Archive> [<Datei>...] [<Zielver>]

I. Packen/Archivieren

Das wichtigste Kommando für das Archivieren ist 'a'. Der einfachste Aufruf, um ein File in ein Archiv zu "adden" (hinzufügen), lautet daher:

    LZX a Archive.LZX DateiA

Damit wird das File "DateiA" zu dem Archiv "Archive.LZX" hinzugefügt (falls das Archiv noch nicht existiert, wird es erstellt).

Es können aber auch mehrere Dateien gleich mitübergeben werden:

    LZX a Archive.LZX DateiB DateiC Ram:DateiD Work:DateiE

Mit diesem Aufruf würden die Files "DateiB", "DateiC", "Ram:DateiD" und "Work:DateiE" dem Archiv hinzugefügt werden. Dabei ist zu beachten, daß die Pfadangabe der Dateien DateiD bzw. DateiE *nicht* mit abgespeichert wird! Um dies zu erreichen, muß eine spezielle Option verwendet werden (siehe unten).

für Fortgeschrittene:
Als Abwandlung des 'a'-Kommandos gibt es das 'af'-Kommando (add fast).

Es wird einfach anstelle von 'a' verwendet. Der Unterschied ist, daß LZX nicht überprüft, ob die hinzuzufügende Datei schon existiert, dadurch wird der Vorgang erheblich schneller. Allerdings sollte diese Option nur verwendet werden, wenn man sichergehen kann, daß kein File zweimal "geadded" wird.

Als Beispielanwendung wird in der Anleitung eine FidoNet-Anwendung erwähnt, bei der jedes Mailpaket ein anderen Namen besitzt. Durch die Verwendung von 'af' kann dieser Bereich einer BBS erheblich beschleunigt werden.

Die Kommandos 'f' ("freshen"), 'r' ("replace") und 'u' ("update") dienen auch dem Hinzufügen von Dateien zu einem Archiv.

Bei 'f' werden ältere Dateien durch neuere ersetzt, wobei das letzte Änderungs-Datum der Files beachtet wird. Dabei wird angenommen, daß ein früheres Datum eine ältere Datei bedeutet. Das Kommando 'r' ersetzt hingegen einfach nur bereits existierende Files. 'u' wirkt fast genauso wie 'f', jedoch fügt es auch neue Datei hinzu (im Gegensatz zu 'f' und 'r').


II. Entpacken

Ein Archiv wird entweder mit dem Kommando 'e' oder mit 'x' entpackt.

Der einzige Unterschied ist, daß bei 'e' keine Dateipfade beachtet werden, bei 'x' hingegen die Pfade (soweit vorhanden) beachtet und ggfs. Unterverzeichnisse angelegt werden. Wird das Zielverzeichnis beim Aufruf von LZX nicht angegeben, wird das aktuelle Verzeichnis benutzt.


III. Weitere Kommandos

Auflisten des Inhalts eines Archivs kann über die zwei Kommandos 'l' und 'v' geschehen.

Der Unterschied ist, daß 'v' mehr Informationen anzeigt als 'l'. Die meisten ausgegebenen Informationen sollten verständlich sein. Die "CRC-32"-Spalte gibt die Checksumme der einzelnen Files aus (im Gegensatz zu LhA's 16Bit-CRC verwendet LZX eine 32Bit-CRC-Checksumme, was die Sicherheit erhöht). Die "m"-Spalte gibt den Modus der Kompression von LZX an.

Um sich eine Datei aus einem Archiv heraus anzeigen zu lassen, muß man LZX mit 'p' aufrufen. Damit läßt sich z.B. ein schneller Blick in eine Readme-Datei werfen, ohne sie extra entpacken zu müssen.

Wenn man zwei Archive zusammenpacken möchte, kann man das 'c' ("concatenate")-Kommando verwenden. Jedoch ist dabei, genau wie mit 'af', Vorsicht walten zu lassen, da LZX keine Überprüfung vornimmmt, ob die Dateien vielleicht schon vorhanden sind.

Falls man testen möchte, ob das Archiv korrekt übertragen wurde, kann man mit dem Kommando 't' einen Test der Archivs durchführen.

Es lassen sich zu guter Letzt auch einzelne Dateien aus einem Archiv löschen. Der entsprechende Aufruf könnte z.B. so aussehen:

    LZX d Archiv.LZX DateiB DateiC

Damit würden die Dateien "DateiB" und "DateiC" aus dem Archiv "Archiv.LZX" gelöscht werden.


IV. wichtige Optionen

Nun noch eine Beschreibung der wichtigsten Optionen. Für eine vollständige Übersicht schauen Sie bitte in der Anleitung nach.

Option   Beschreibung

-e       Archiviert auch leere Unterverzeichnisse.

-F       Mit dieser Option gibt LZX kein Linefeed mehr nach jeder
         (de-)komprimierten Datei aus. Das ist extrem nützlich, da
         je nach Rechner und Archiv das Scrolling der Konsole den
         Pack- bzw. Entpackvorgang erheblich verlangsamt.

-Qf      Mit dieser Option packt LZX schneller (ohne Effizienzverlust),
         benötigt aber 32 KB mehr Speicher.

-r       Mit dieser Option durchsucht LZX bei Verwendung von Jokern
         auch Unterverzeichnisse, um passende Dateien zu finden. Durch
         -r wird normalerweise auch automatisch -x aktiviert.

-w       Hiermit kann ein spezielles Verzeichnis angegeben werden, indem
         LZX seine temporären Dateien anlegt. Dadurch lassen sich auch
         bei geringem Speicher größere Dateien packen. Der Pfad muß mit
         einem Semikolon oder Slash enden. Default ist T:

-x       Mit dieser Option speichert LZX auch die Pfadnamen der
         einzelnen Dateien (außer die Device-Namen). Dadurch wird
         die Verzeichnisstruktur erhalten. Diese Option wird von -r
         automatisch aktiviert.

-Y       Normalerweise werden Dateien mit bestimmten Endungen nicht
         gepackt, da diese bereits in komprimierter Form vorliegen (z.B.
         '.lha', '.rar', etc.) Mit der -Y Option werden auch diese von LZX
         erneut gepackt.

-0       Hiermit wird der Modus von LZX eingestellt. -0 bedeutet keine
         Komprimierung,
-1       etwas schlechtere Komprimierung als -2,
-2       Default-Einstellung,
-3       bessere Komprimierung als -2,
-9       bestmögliche Komprimierung von LZX, jedoch extrem langsam.

LhA

Aufruf-Maske:

 LhA [-<Optionen>] <Kommandos> <Archiv[.LHA]> [[homedir] <Dateispec>...]
     [destdir]

Der Klassiker unter den Packern. LhA hat fast die gleichen Kommandos und Optionen wie LZX (oder genauer: LZX hat die von LhA, da LZX nach LhA programmiert wurde).

Die Bedienung ist im großen und ganzen die gleiche wie bei LZX, jedoch unterstützt LhA (unregistriert) einige Optionen nicht bzw. haben sie eine andere Bedeutung.


I. Packen

Die Option zum Packen entspricht der von LZX, der Aufruf ist daher:

    LhA a <Archiv> <File1> <File2..>

Ebenfalls lassen sich mit 'c' zwei Archive zusammenfassen, wobei, genau wie bei LZX, nicht überprüft wird, ob die Dateien schon im Archiv vorhanden sind.

Dateien lassen sich auch in ein Archiv verschieben, so daß die Original-Datei gelöscht wird (Kommando: 'm').


II. Entpacken

Die Kommandos zum Entpacken 'a' bzw. 'e' entsprechen genau LZX.


III. weitere Kommandos

Das Auflisten geschieht mit 'l' bzw. 'v'. Das Testen des Archivs macht 't' und eine Datei wird aus dem Archiv mit 'd' gelöscht.


GZip

GZip ist eigentlich nur ein Packer und bietet nur eine umständliche Möglichkeit Dateien zu einem Archiv zusammenzupacken. Er wird meist zusammen mit tar, einem reinem Archiver, verwendet. tar bietet eine Unterstützung von GZip, so daß zwei getrennte Aufrufe auch vermieden werden.

Endung einer GZip-gepackten Datei: .gz Endung eines tar/GZip-Archivs: .tgz oder .tar.gz

Aufruf-Maske von GZip:

    gzip [-cdfhlLnNrtvV19] [-S Suffix] <Datei ...>


I. Packen

Normalerweise packt GZip einfach die übergebenen Dateien, hängt die Endung '.gz' daran und löscht das Original. Bei dieser Verwendung muß keine weitere Option angegeben werden.

Durch Angabe einer Zahl zwischen 1 und 9 als Option wird die Komprimierungsqualität beeinflusst. "-1" ist schnell, aber wenig effizient, während "-9" die beste Effizienz ergibt, aber langsamer ist.

Um für jede Datei eine Ausgabezeile mit der Packratio und dem neuem Dateinamen zu bekommen, muß "v" als Option angegeben werden. "r" sorgt für die bekannte Rekursion.

Damit die ursprüngliche Datei unberührt bleibt, kann die Option "c" angegeben werden. Dann wird die Ausgabe nach 'stdout' umgeleitet. Um das dann nützlich zu verwenden kann sie wieder auf gewohnte AmigaDOS-Weise umgeleitet werden.

Beispiel:

    gzip -c TestDatei >RAM:Datei.gz

Damit wird die Datei "TestDatei" gepackt und als File "Ram:Datei.gz" abgespeichert.


II. Entpacken

GZip entpackt ein gepacktes File mit "-d", stellt den ursprünglichen Dateinamen wieder her und löscht dann die gepackte Datei. Ansonsten läßt sich ebenfalls die Ausgabe mit "-c" umleiten.


III. Sonstige Optionen

Als weitere Optionen kann man mit "-l" bzw. "-lv" einige Informationen über eine gepackte Datei abrufen. Mit "-h" erhält man einen kurzen Hilfstext. Die Option "-t" testet das Archiv. Um eine Ausgabe pro geprüfte Datei zu erhalten, muß wieder die Verbose-Option eingeschaltet sein.


tar

"tar" ist ein GNU-Programm, das zum Archivieren von Dateien auf "Tapes" entwickelt wurde (daher der Name "Tape ARchiver"). Jedoch lassen sich die Archive auch auf jedes andere Gerät umlenken.

Als typisches Un*x-likes Programm ist die Bedienung etwas gewöhnungsbedürftig und m.E. nicht so komfortabel, wie bei den anderen Amiga-Tools. Das zeigt sich z.B. daran, daß zwischen zwei verschiedene Optionen unterschieden wird, je nach dem, ob man ein neues Archiv anlegen will oder einem bereits bestehenden Dateien hinzufügen will.

Die Kommandos von tar beginnen mit einem "--" (ohne die Anführungsstriche) und sind meist ganze Worte, jedoch gibt es für die wichtigsten Kommandos eine verkürzte Schreibweise, die mit einem "-" beginnt und nur aus einem Buchstaben besteht.

Eine Übersicht der Befehle wird mit dem Aufruf "tar --help" angezeigt und zeigt auch beide Varianten an. Ich werde daher nicht immer beide Varianten angeben. Da tar ein recht komplexes Programm ist, empfehle ich bei häufiger Benutzung auf jeden Fall die Anleitung zu lesen. Wer lediglich tar benötigt, um .tgz Files zu entpacken, sollte dagegen lieber UnTGZ von Oliver Wagner benutzen (siehe unten).

Empfohlen wird die Portierung aus dem "GeekGadget"-Projekt. Ich habe nämlich noch eine andere Portierung, die allerdings die Pfade nur im Un*x-Stil akzeptiert, was sicherlich unnötig gewöhnungsbedürftig ist.

Endung eines tar-Archivs: .tar
Endung einer tar/GZip-Archivs: .tgz oder .tar.gz


I. Archivieren

Der Aufruf, um ein neues tar-Archiv anzulegen, lautet:

    tar --create --file <Archiv> <File1> <File2...>

Oder mit den abgekürzten Optionen:

    tar -cf <Archiv> <File1> <File2..>

Damit werden die Dateien File1, File2.. zusammen in das Archiv gepackt, ohne dabei gepackt zu werden. Allerdings unterstützt tar auch "compress" und "GZip" direkt. Soll das Archiv mit GZip gepackt werden, muß die Option -z mit angegeben werden (sowohl beim Packen also auch beim Entpacken).

    tar -czf <Archiv> <File1> <File2..>

Falls das Archiv bereits existiert und nur die Files hinzugefügt werden sollen, darf die --create (-c)-Option nicht angegeben werden, da sonst das Archiv überschrieben wird. In diesem Fall ist die --append bzw. -r Option zu verwenden.

    tar -rf <Archiv> <File1> <File2..>

Dabei ist jedoch zu beachten, daß tar nicht checkt, ob die Dateien bereits im Archiv sind und sie einfach als letzte Dateien hinzufügt. Um bereits bestehende Dateien upzudaten, gibt es die Option "--update" ('-u').


II. Entpacken

Um nun das Archiv wieder zu entpacken, gibt es folgenden Aufruf:

    tar -xf <Archiv> <File1> <File2..>

Die 'x' Option ist die Kurzfassung von '--extract', womit die angegebenen Dateien entsprechend ihres Pfades entpackt werden.


III. Weitere Optionen

Soll tar anzeigen, welche Dateien bearbeitet werden, ist die Option --verbose ('-v') mit anzugeben. Z.B.:

    tar -cvzf <Archiv> <File1> <File2..>

UnTGZ 1.5

"UnTGZ" von Oliver Wagner (zu finden unter ftp.vapor.com) entpackt Dateien, die mit tar und GZip zu einem Archiv zusammengepackt sind. Als reines Entpacktool ist es einfacher zu bedienen als tar. Die tar/GZip-Archive enden auf .tgz oder .tar.gz

Der Aufruf von UnTGZ ist denkbar einfach:

    UnTGZ <Archiv> <Zielverzeichnis>

Zum Anzeigen des Inhaltes besitzt UnTGZ noch die Option -v.

    UnTGZ -v <Archiv>

Unarj

Unarj ist ein Entpacker für den arj-Packer des PC's. Die Bedienung ist relativ einfach. Es gibt mehrere Portierungen von Unarj für den Amiga. Deren Benutzung ist jedoch gleich.

    UNARJ <Archiv>
        Damit wird der Inhalt des arj-Archives angezeigt.

    UNARJ e <Archiv>
        Damit wird das Archiv in das aktuelle Verzeichnis hinein entpackt.

    UNARJ x <Archiv>
        Damit wird das Archiv entpackt und die Pfade der Dateien bleiben
        erhalten.

    UNARJ t <Archiv>
        Damit wird das Archiv getestet.

Unrar

Unrar ist ein Entpacker für den PC-Packer rar. Hinweis: Die Version 2.01 von Amiga-Unrar hat einen Bug, es sollte daher auf jeden Fall Version 2.02 verwendet werden!

    Unrar x <Archiv> <Pfad_des_Zielverzeichnisses>
        Zum Auspacken des Archivs.

    Unrar l <Archiv>
        Listet den Inhalt des Archivs.

    Unrar t <Archiv>
        Checkt den Inhalt des Archivs.


Kommando-Übersicht

PackenEntpackenAuflisten
LhAa x oder el oder t
LZXa x oder el oder t
tar-c oder -r-x -t
GZipk.A. d -l oder -lv
UnTGZk.A. k.A. -v
UnARJk.A. x oder ek.A.
UnRARk.A. x l

Zurück zum Anfang


Prev Inhaltsverzeichnis Next
©`98 Der AmZeiger