Handbücher für die Kommandozeile

Man » zip-Handbuch online - detaillierte Online-Dokumentation für die zip-Manpage

🌍
zip - Dateien verpacken und komprimieren (archivieren)

SYNOPSIS

zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b Pfad] [-n Suffixe] [-t Datum]
[-tt Datum] [zip-Datei [Datei ...]] [-xi Liste]

zipcloak (siehe separate Manpage)

zipnote (siehe separate Manpage)

zipsplit (siehe separate Manpage)

Hinweis: Die Verarbeitung von Befehlszeilen in zip wurde geändert, um lange Optionen zu unterstützen und alle Optionen und Argumente konsistenter zu behandeln. Einige alte Befehlszeilen, die auf Inkonsistenzen in der Befehlszeile basieren, funktionieren möglicherweise nicht mehr.

DESCRIPTION

zip ist ein Kompressions- und Dateiverpackungsprogramm für Unix, VMS, MSDOS, OS/2, Windows 9x/NT/XP,

Minix, Atari, Macintosh, Amiga und Acorn RISC OS. Es ist analog zu einer Kombination der Unix-Befehle tar(1) und compress(1) und ist kompatibel mit PKZIP (Phil Katz's ZIP für MSDOS-Systeme).

Ein zugehöriges Programm (unzip(1)) entpackt zip-Archive. Die Programme zip und unzip(1) können mit Archiven arbeiten, die von PKZIP erstellt wurden (und die meisten PKZIP-Funktionen bis zur PKZIP-Version 4.6 unterstützen), und PKZIP und PKUNZIP können mit Archiven arbeiten, die von zip erstellt wurden (mit einigen Ausnahmen, insbesondere bei gestreamten Archiven, aber aktuelle Änderungen im zip-Dateiformatstandard können eine bessere Kompatibilität ermöglichen). zip Version 3.0 ist kompatibel mit PKZIP 2.04 und unterstützt auch die Zip64-Erweiterungen von PKZIP 4.5, die es ermöglichen, dass Archive sowie Dateien die vorherige 2-GB-Grenze überschreiten (in einigen Fällen 4 GB). zip unterstützt jetzt auch die bzip2-Komprimierung, wenn die bzip2-Bibliothek beim Kompilieren von zip enthalten ist.

Beachten Sie, dass PKUNZIP 1.10 keine Dateien extrahieren kann, die von PKZIP 2.04 oder zip 3.0 erstellt wurden. Sie müssen PKUNZIP 2.04g oder unzip 5.0p1 (oder neuere Versionen) verwenden, um diese zu extrahieren.

Siehe den Abschnitt EXAMPLES am Ende dieser Seite für Beispiele für einige typische Verwendungsweisen von zip.

Große Archive und Zip64. zip verwendet automatisch die Zip64-Erweiterungen, wenn Dateien, die größer als 4 GB sind, zu einem Archiv hinzugefügt werden, ein Archiv, das Zip64-Einträge enthält, aktualisiert wird (falls das resultierende Archiv weiterhin Zip64 benötigt), die Größe des Archivs 4 GB überschreitet oder wenn die Anzahl der Einträge im Archiv etwa 64.000 überschreitet. Zip64 wird auch für Archive verwendet, die von der Standardeingabe gestreamt werden, da die Größe dieser Archive nicht im Voraus bekannt ist, aber die Option -fz- kann verwendet werden, um zip dazu zu zwingen, PKZIP 2-kompatible Archive zu erstellen (solange die Zip64-Erweiterungen nicht erforderlich sind). Sie müssen ein PKZIP 4.5-kompatibles unzip-Programm verwenden, z. B. unzip 6.0 oder höher, um Dateien mit den Zip64-Erweiterungen zu extrahieren.

Darüber hinaus sind gestreamte Archive, Einträge, die mit der Standardverschlüsselung verschlüsselt sind, oder aufgeteilte Archive, die mit der Option "pause" erstellt wurden, möglicherweise nicht mit PKZIP kompatibel, da Datendeskriptoren verwendet werden und PKZIP zum Zeitpunkt dieses Schreibens keine Datendeskriptoren unterstützt (aber aktuelle Änderungen im von PKWare veröffentlichten zip-Standard enthalten jetzt eine gewisse Unterstützung für das von zip verwendete Datendeskriptorformat).


Mac OS X. Frühere Mac-Versionen hatten zwar ihre eigene Zip-Implementierung, aber Zip unterstützt Mac OS X als Teil der Unix-Implementierung, und die meisten Unix-Funktionen gelten auch hier. Bezüge zu „MacOS“ beziehen sich im Allgemeinen auf MacOS-Versionen vor OS X. Die Unterstützung für einige Mac OS-Funktionen in der Unix-basierten Mac OS X-Implementierung, wie z. B. Resource Forks, ist für die nächste Zip-Version geplant.

Für eine kurze Hilfe zu zip und unzip führen Sie jedes Programm ohne Angabe von Parametern in der Befehlszeile aus.

VERWENDUNG

Das Programm ist nützlich, um eine Reihe von Dateien für die Verteilung zu verpacken, Dateien zu archivieren und Speicherplatz zu sparen, indem ungenutzte Dateien oder Verzeichnisse vorübergehend komprimiert werden.

Das Zip-Programm packt eine oder mehrere komprimierte Dateien in ein einzelnes Zip-Archiv, zusammen mit Informationen über die Dateien (Name, Pfad, Datum, Uhrzeit der letzten Änderung, Berechtigungen und Prüfsummen zur Überprüfung der Dateintegrität). Eine ganze Verzeichnisstruktur kann mit einem einzigen Befehl in ein Zip-Archiv gepackt werden. Kompressionsverhältnisse von 2:1 bis 3:1 sind üblich für Textdateien. Zip verfügt über eine Kompressionsmethode (Deflation) und kann Dateien auch ohne Kompression speichern. (Wenn die Unterstützung für bzip2 hinzugefügt wird, kann Zip auch die bzip2-Kompression verwenden, aber solche Einträge erfordern eine relativ moderne Entpackungssoftware. Wenn die bzip2-Kompression ausgewählt wird, ersetzt sie Deflation als Standardmethode). Zip wählt automatisch die bessere der beiden Methoden (Deflation oder keine Kompression oder, falls bzip2 ausgewählt ist, bzip2 oder keine Kompression) für jede zu komprimierende Datei aus.

Befehlsformat. Das grundlegende Befehlsformat ist:

zip Optionen Archiv Eingabepfad Eingabepfad ...

Dabei ist Archiv ein neues oder vorhandenes Zip-Archiv und Eingabepfad ein Verzeichnis- oder Dateipfad, der optional Platzhalter enthalten kann. Wenn der Name eines vorhandenen Zip-Archivs angegeben wird, ersetzt Zip identisch benannte Einträge im Zip-Archiv (unter Berücksichtigung der relativen Namen, wie sie im Archiv gespeichert sind) oder fügt Einträge für neue Namen hinzu. Wenn beispielsweise foo.zip vorhanden ist und foo/file1 und foo/file2 enthält und das Verzeichnis foo die Dateien foo/file1 und foo/file3 enthält, dann:

zip -r foo.zip foo

oder kürzer:

zip -r foo foo

ersetzt foo/file1 in foo.zip und fügt foo/file3 zu foo.zip hinzu. Danach enthält foo.zip foo/file1, foo/file2 und foo/file3, wobei foo/file2 unverändert bleibt.

Wenn vor der Ausführung des Zip-Befehls foo.zip Folgendes enthält:

foo/file1 foo/file2

und das Verzeichnis foo Folgendes enthält:

file1 file3

dann enthält foo.zip nach der Ausführung des Befehls:

foo/file1 foo/file2 foo/file3

wobei foo/file1 ersetzt und foo/file3 neu ist.

-@ Dateilisten. Wenn eine Dateiliste als -@ [Nicht auf MacOS] angegeben wird, liest Zip die Liste der Eingabedateien aus der Standardeingabe anstelle der Befehlszeile. Zum Beispiel:


zip -@ foo

erstellt eine ZIP-Datei namens `foo`, in der die auf der Standardeingabe zeilenweise aufgelisteten Dateien gespeichert werden.

Unter Unix kann diese Option in Verbindung mit dem Befehl find (1) sehr effektiv eingesetzt werden. Um beispielsweise alle C-Quelldateien im aktuellen Verzeichnis und seinen Unterverzeichnissen zu archivieren:

find . -name "*.[ch]" -print | zip source -@

(beachten Sie, dass das Muster in Anführungszeichen gesetzt werden muss, damit die Shell es nicht erweitert).

Zip akzeptiert Streaming-Ein- und -Ausgabe. Zip akzeptiert auch einen einzelnen Bindestrich ("-") als ZIP-Dateinamen, in diesem Fall schreibt es die ZIP-Datei in die Standardausgabe, so dass die Ausgabe an ein anderes Programm weitergeleitet werden kann. Zum Beispiel:

zip -r - . | dd of=/dev/nrst0 obs=16k

würde die ZIP-Ausgabe direkt auf ein Band mit der angegebenen Blockgröße schreiben, um das aktuelle Verzeichnis zu sichern.

Zip akzeptiert auch einen einzelnen Bindestrich ("-") als Namen der zu komprimierenden Datei, in diesem Fall

liest es die Datei von der Standardeingabe, so dass Zip Eingaben von einem anderen Programm entgegennehmen kann. Zum Beispiel:

tar cf - . | zip backup würde die Ausgabe des `tar`-Befehls komprimieren, um das aktuelle Verzeichnis zu sichern.

Dies führt im Allgemeinen zu einer besseren Komprimierung als das vorherige Beispiel mit der Option -r, da Zip die Redundanz zwischen den Dateien nutzen kann. Das Backup kann mit dem Befehl wiederhergestellt werden:

unzip -p backup | tar xfWenn kein ZIP-Dateiname angegeben wird und die Standardausgabe kein Terminal ist, fungiert Zip als Filter, der die Standardeingabe in die Standardausgabe komprimiert. Zum Beispiel:

tar cf - . | zip | dd of=/dev/nrst0 obs=16k

ist äquivalent zu

tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k

Zip-Archive, die auf diese Weise erstellt werden, können mit dem Programm `funzip` extrahiert werden, das im

Paket unzip enthalten ist, oder mit gunzip, das im Paket gzip enthalten ist (jedoch unterstützen einige gunzip-Versionen dies möglicherweise nicht, wenn Zip die Zip64-Erweiterungen verwendet hat). Zum Beispiel:

dd if=/dev/nrst0  ibs=16k | funzip | tar xvfDer Stream kann auch in einer Datei gespeichert und mit `unzip` verwendet werden.

Wenn die Unterstützung für Zip64 für große Dateien und Archive aktiviert ist und Zip als Filter verwendet wird, erstellt Zip ein Zip64-Archiv, das ein PKZIP 4.5 oder neueres kompatibles Entpackprogramm zum Lesen benötigt. Dies soll Mehrdeutigkeiten in der ZIP-Dateistruktur vermeiden, wie sie im aktuellen ZIP-Standard (PKWARE AppNote) definiert sind, wobei die Entscheidung, Zip64 zu verwenden, getroffen werden muss, bevor die Daten für den Eintrag geschrieben werden, aber bei einem Stream ist die Größe der Daten zu diesem Zeitpunkt nicht bekannt. Wenn die Daten kleiner als 4 GB sind, kann die Option -fz- verwendet werden, um die Verwendung von Zip64 zu verhindern, aber Zip gibt eine Fehlermeldung aus, wenn Zip64 tatsächlich benötigt wurde. Zip 3 und Unzip 6 und neuer können Archive mit Zip64-Einträgen lesen. Außerdem entfernt Zip die Zip64-Erweiterungen, wenn sie nicht benötigt werden, wenn Archiveinträge kopiert werden (siehe die Option -U (--copy)).

Wenn die Ausgabe in eine andere Datei umgeleitet wird, sollten alle Optionen, einschließlich -x, vor der Umleitung stehen. Zum Beispiel:

zip archive "*.h" "*.c" -x donotinclude.h orthis.h > tofile

Zip-Dateien. Beim Ändern eines vorhandenen Zip-Archivs schreibt Zip eine temporäre Datei mit den neuen Inhalten und ersetzt die alte Datei erst, wenn der Prozess der Erstellung der neuen Version ohne Fehler abgeschlossen wurde.

Wenn der Name des Zip-Archivs keine Dateiendung enthält, wird die Endung .zip hinzugefügt. Wenn der Name bereits eine andere Endung als .zip enthält, wird die vorhandene Endung unverändert beibehalten. Allerdings benötigen aufgeteilte Archive (Archive, die auf mehrere Dateien aufgeteilt sind), die Endung .zip auf der letzten aufgeteilten Datei.

Scannen und Lesen von Dateien. Beim Start scannt Zip nach zu verarbeitenden Dateien (falls erforderlich). Wenn dieses Scannen länger als etwa 5 Sekunden dauert, zeigt Zip eine Meldung „Dateien werden gescannt“ an und beginnt, alle 2 Sekunden oder alle paar verarbeiteten Einträge Fortschrittspunkte anzuzeigen, je nachdem, was länger dauert. Wenn mehr als 2 Sekunden zwischen den Punkten liegen, kann dies darauf hindeuten, dass das Finden jeder Datei Zeit in Anspruch nimmt, was beispielsweise auf eine langsame Netzwerkverbindung hindeuten könnte. (Tatsächlich ist die erste Dateisuche ein zweistufiger Prozess, bei dem auf das Verzeichnis-Scanning ein Sortieren folgt, und diese beiden Schritte werden durch ein Leerzeichen in den Punkten getrennt. Wenn ein vorhandenes Archiv aktualisiert wird, wird ebenfalls ein Leerzeichen zwischen dem Scannen der vorhandenen Datei und dem Scannen der neuen Datei angezeigt.) Die Punkte für das Scannen von Dateien werden nicht durch die Option -ds (Punktgröße) gesteuert, aber die Punkte werden durch die Option -q (ruhig) deaktiviert. Die Option -sf (Dateien anzeigen) kann verwendet werden, um nach Dateien zu suchen und die Liste der gescannten Dateien zu erhalten, ohne sie tatsächlich zu verarbeiten.

Wenn Zip eine Datei nicht lesen kann, gibt es eine Warnung aus und setzt den Vorgang fort. Siehe die Option -MM unten, um mehr darüber zu erfahren, wie Zip mit Mustern umgeht, die nicht übereinstimmen, und mit Dateien, die nicht gelesen werden können. Wenn einige Dateien übersprungen wurden, wird am Ende des Zip-Vorgangs eine Warnung ausgegeben, in der angegeben wird, wie viele Dateien gelesen und wie viele übersprungen wurden.

Befehlsmodi. Zip unterstützt jetzt zwei verschiedene Arten von Befehlsmodi: externe und interne. Die externen Modi (add, update und freshen) lesen Dateien aus dem Dateisystem (sowie aus einem vorhandenen Archiv), während die internen Modi (delete und copy) ausschließlich mit Einträgen in einem vorhandenen Archiv arbeiten.

add

Vorhandene Einträge aktualisieren und neue Dateien hinzufügen. Wenn das Archiv nicht vorhanden ist, wird es erstellt. Dies ist der Standardmodus.

update (-u)

Vorhandene Einträge aktualisieren, wenn sie neuer auf dem Dateisystem sind, und neue Dateien hinzufügen. Wenn das Archiv nicht vorhanden ist, wird eine Warnung ausgegeben und dann ein neues Archiv erstellt.

freshen (-f)

Vorhandene Einträge eines Archivs aktualisieren, wenn sie neuer auf dem Dateisystem sind. Neue Dateien werden nicht zum Archiv hinzugefügt.

delete (-d)

Einträge in einem vorhandenen Archiv auswählen und löschen.

copy (-U)

Einträge in einem vorhandenen Archiv auswählen und in ein neues Archiv kopieren. Dieser neue Modus ist ähnlich wie „update“, aber die Befehlszeilenmuster wählen Einträge im vorhandenen Archiv aus, anstatt Dateien aus dem Dateisystem, und er verwendet die Option --out, um das resultierende Archiv in eine neue Datei zu schreiben, anstatt das vorhandene Archiv zu aktualisieren, wobei das ursprüngliche Archiv unverändert bleibt.

Die neue Option „Datei-Synchronisierung“ (-FS) wird ebenfalls als neuer Modus betrachtet, obwohl sie dem Aktualisierungsmodus ähnelt. Dieser Modus synchronisiert das Archiv mit den Dateien auf dem Betriebssystem, wobei Dateien im Archiv nur dann ersetzt werden, wenn sich die Datei-Zeit oder -Größe der OS-Datei unterscheidet, neue Dateien hinzugefügt und Einträge aus dem Archiv gelöscht werden, wenn keine übereinstimmende Datei vorhanden ist. Da dieser Modus Einträge aus dem Archiv löschen kann, sollten Sie eine Sicherungskopie des Archivs erstellen.

Siehe auch -DF zum Erstellen von Differenzarchiven.

Geteilte Archive. Die zip-Version 3.0 und höher kann geteilte Archive erstellen. Ein geteiltes Archiv ist ein Standard-Zip-Archiv, das auf mehrere Dateien aufgeteilt ist. (Beachten Sie, dass geteilte Archive nicht einfach Archive sind, die in Teile aufgeteilt sind, da die Offsets der Einträge jetzt auf dem Beginn jedes Teils basieren. Das Zusammenfügen der Teile würde diese Offsets ungültig machen, aber unzip kann dies normalerweise verarbeiten. Zip wird normalerweise die Verarbeitung eines solchen zusammengefügten Archivs verweigern, es sei denn, die Option -FF zur Korrektur der Offsets wird verwendet.

Eine Verwendung von geteilten Archiven ist die Speicherung eines großen Archivs auf mehreren Wechselmedien. Für ein geteiltes Archiv mit 20 Teildateien sind die Dateien typischerweise benannt (ersetzen Sie ARCHIVE durch den Namen Ihres Archivs) ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip. Beachten Sie, dass die letzte Datei die .zip-Datei ist. Im Gegensatz dazu sind aufgeteilte Archive die ursprünglichen Mehrfach-Disk-Archive, die in der Regel Disketten verwenden und die Datenträgernummern in den Volumenbeschriftungen speichern. Zip unterstützt geteilte Archive, aber keine aufgeteilten Archive, obwohl es ein Verfahren gibt, um geteilte Archive der richtigen Größe in aufgeteilte Archive zu konvertieren. Das Gegenteil ist ebenfalls wahr, wobei jede Datei eines aufgeteilten Archivs in der Reihenfolge kopiert werden kann, um Dateien mit den obigen Namen zu erstellen und ein geteiltes Archiv zu erstellen.

Verwenden Sie -s, um die Teilungsgröße festzulegen und ein geteiltes Archiv zu erstellen. Die Größe wird als Zahl angegeben, gefolgt optional von einem von k (KB), m (MB), g (GB) oder t (TB) (der Standard ist m). Die Option -sp kann verwendet werden, um Zip zwischen den Teilungen anzuhalten, um beispielsweise den Wechsel von Wechselmedien zu ermöglichen, aber lesen Sie die Beschreibungen und Warnhinweise für sowohl -s als auch -sp unten.

Obwohl Zip geteilte Archive nicht aktualisiert, bietet Zip die neue Option -O (--output-file oder --out), um geteilte Archive zu aktualisieren und in einem neuen Archiv zu speichern. Zum Beispiel:

zip inarchive.zip foo.c bar.c --out outarchive.zip

liest das Archiv inarchive.zip, auch wenn es geteilt ist, fügt die Dateien foo.c und bar.c hinzu und schreibt das resultierende Archiv in outarchive.zip. Wenn inarchive.zip geteilt ist, verwendet outarchive.zip standardmäßig die gleiche Teilungsgröße. Beachten Sie, dass, wenn outarchive.zip und alle mit ihm erstellten Teildateien bereits vorhanden sind, diese immer ohne Warnung überschrieben werden. Dies kann in Zukunft geändert werden.

Unicode. Obwohl der Zip-Standard erfordert, dass Pfade in einem Archiv unter Verwendung eines bestimmten Zeichensatzes gespeichert werden, werden in der Praxis Pfade in Archiven in dem jeweiligen lokalen Zeichensatz gespeichert. Dies schafft Probleme, wenn ein Archiv auf einem System mit einem Zeichensatz erstellt oder aktualisiert und dann auf einem anderen System mit einem anderen Zeichensatz extrahiert wird. Wenn mit Unicode-Unterstützung auf Plattformen kompiliert, die Wide-Zeichen unterstützen, speichert Zip jetzt zusätzlich zum Standard-lokalen Pfad für die Abwärtskompatibilität die UTF-8-Übersetzung des Pfads. Dies bietet einen gemeinsamen universellen Zeichensatz zum Speichern von Pfaden, der es ermöglicht, diese Pfade auf anderen Systemen, die Unicode unterstützen, vollständig zu extrahieren und auf Systemen, die dies nicht tun, so genau wie möglich anzupassen.


Auf Win32-Systemen, bei denen Pfade intern als Unicode gespeichert, aber im lokalen Zeichensatz dargestellt werden, ist es möglich, dass einige Pfade bei einer lokalen Zeichensatz-Verzeichnissuche übersprungen werden. Zip-Dateien mit Unicode-Unterstützung können diese Pfade jetzt lesen und speichern. Beachten Sie, dass Win 9x-Systeme und FAT-Dateisysteme Unicode nicht vollständig unterstützen.

Beachten Sie, dass Konsolenfenster unter Win32 und Unix beispielsweise manchmal nicht alle Zeichen korrekt anzeigen, da jedes Betriebssystem die verwendeten Zeichensätze für die Anzeige umschaltet. Verzeichnisnavigationstools sollten jedoch die korrekten Pfade anzeigen, wenn die erforderlichen Schriftarten geladen sind.

Befehlszeilenformat. Diese Version von zip verfügt über eine aktualisierte Befehlszeilenverarbeitung und Unterstützung für lange Optionen.

Kurze Optionen haben die folgende Form:

-s[-][s[-]...][value][=value][ value]

wobei s eine ein- oder zweizeichenlange kurze Option ist. Eine kurze Option, die einen Wert benötigt, steht am Ende eines Arguments, und alles danach wird als Wert betrachtet. Wenn die Option negiert werden kann und direkt nach der Option ein "-" folgt, wird die Option negiert. Kurze Optionen können auch als separate Argumente angegeben werden:

-s[-][value][=value][ value] -s[-][value][=value][ value] ...

Kurze Optionen benötigen im Allgemeinen Werte entweder als Teil desselben Arguments oder als nachfolgendes Argument. Ein optionales "=" wird ebenfalls unterstützt. So funktionieren die folgenden Befehle:

-ttmmddyyyy

und

-tt=mmddyyyy

und

-tt mmddyyyy

Sie alle funktionieren. Die Optionen -x und -i akzeptieren Listen von Werten und verwenden ein leicht abweichendes Format, das unten beschrieben wird. Siehe die Optionen -x und -i.

Lange Optionen haben die folgende Form:

--longoption[-][=value][ value]

wobei die Option mit "--" beginnt, einen mehrteiligen Namen hat, ein nachgestelltes "-" enthalten kann, um die Option zu negieren (falls die Option dies unterstützt), und einen Wert (Optionsargument) enthalten kann, der ihr durch ein vorangestelltes "=" (ohne Leerzeichen) zugewiesen wird. Werte können auch dem Argument folgen. So funktionieren die folgenden Befehle:

--before-date=mmddyyyy

und

--before-date mmddyyyy

Sie beide funktionieren.

Lange Optionsnamen können auf die kürzeste eindeutige Abkürzung verkürzt werden. Siehe die Optionsbeschreibungen unten, um zu erfahren, welche langen Optionen dies unterstützen. Um Verwirrung zu vermeiden, sollten Sie es vermeiden, eine negierbare Option mit einem eingebetteten Bindestrich ("-") an der Stelle des Bindestrichs abzukürzen, wenn Sie diese negieren möchten (der Parser würde einen nachgestellten Bindestrich, z. B. für die Option --some-option unter Verwendung von --some- als Option, als Teil des Namens und nicht als negierenden Bindestrich betrachten). Dies kann in Zukunft geändert werden, um den letzten Bindestrich in --some zum negierenden Bindestrich zu zwingen.


OPTIONEN

    -a
    --ascii
    [Systeme, die EBCDIC verwenden] Datei in das ASCII-Format übersetzen.

    -A
    --adjust-sfx
    Passen Sie das selbstextrahierende ausführbare Archiv an. Ein selbstextrahierendes ausführbares Archiv wird erstellt, indem dem vorhandenen Archiv der SFX-Stub vorangestellt wird. Die Option -A

weist zip an, die im Archiv gespeicherten Eintragsoffsets so anzupassen, dass diese "Präambel"-Daten berücksichtigt werden.

    Hinweis: Selbstextrahierende Archive für den Amiga sind ein Sonderfall. Derzeit kann nur die Amiga-Version von zip diese anpassen oder aktualisieren, ohne sie zu beschädigen. -J kann verwendet

werden, um den SFX-Stub zu entfernen, wenn andere Aktualisierungen vorgenommen werden müssen.

    -AC
    --archive-clear
    [WIN32] Nachdem das Archiv erstellt wurde (und wenn -T verwendet wird, was empfohlen wird), das Archivbit der verarbeiteten Dateien löschen. WARNUNG: Sobald die Bits gelöscht sind, sind sie

gelöscht. Möglicherweise möchten Sie die Option -sf show files verwenden, um die Liste der verarbeiteten Dateien zu speichern, falls die Archivierungsoperation wiederholt werden muss. Erwägen Sie auch die Verwendung der Option -MM must match. Informieren Sie sich über -DF, da dies möglicherweise eine bessere Möglichkeit ist, inkrementelle Sicherungen durchzuführen.

    -AS
    --archive-set
    [WIN32] Nur Dateien mit dem gesetzten Archivbit einbeziehen. Verzeichnisse werden nicht gespeichert, wenn -AS verwendet wird, standardmäßig werden jedoch die Pfade der Einträge, einschließlich der

Verzeichnisse, wie gewohnt gespeichert und können von den meisten Entpackprogrammen verwendet werden, um Verzeichnisse neu zu erstellen.

Das Archivbit wird vom Betriebssystem festgelegt, wenn eine Datei geändert wird, und in Verbindung mit -AC kann -AS eine Möglichkeit für inkrementelle Sicherungen bieten. Andere Anwendungen können das Archivbit jedoch ändern, und es ist möglicherweise kein zuverlässiger Indikator dafür, welche Dateien sich seit der letzten Archivierungsoperation geändert haben. Alternative Möglichkeiten zum Erstellen inkrementeller Sicherungen sind die Verwendung von -t, um Datumsangaben von Dateien zu verwenden, obwohl dies keine alten Dateien erfasst, die in die zu archivierenden Verzeichnisse kopiert wurden, und -DF, um ein differentielles Archiv zu erstellen.

    -B
    --binary
    [VM/CMS und MVS] Erzwingen, dass die Datei binär gelesen wird (Standard ist Text).

    -Bn    [TANDEM] Legt die Edit/Enscribe-Formatierungsoptionen mit n fest, wobei
    Bit 0: Trennzeichen nicht hinzufügen (Edit/Enscribe)
    Bit 1: Verwenden Sie LF anstelle von CR/LF als Trennzeichen (Edit/Enscribe)
    Bit 2: Datensatz bis zur maximalen Datensatzlänge auffüllen (Enscribe)
    Bit 3: Nachlaufende Leerzeichen entfernen (Enscribe)
    Bit 8: Erzwingen Sie 30K (Expand) großes Lesen für unstrukturierte Dateien

    -b Pfad
    --temp-path Pfad

Verwenden Sie den angegebenen Pfad für das temporäre Zip-Archiv. Zum Beispiel:

    zip -b /tmp stuff *

Dadurch wird das temporäre Zip-Archiv in das Verzeichnis /tmp verschoben, wobei stuff.zip in das aktuelle Verzeichnis kopiert wird, wenn der Vorgang abgeschlossen ist. Diese Option ist nützlich, wenn ein vorhandenes Archiv aktualisiert wird und das Dateisystem, das dieses alte Archiv enthält, nicht genügend Speicherplatz hat, um sowohl alte als auch neue Archive gleichzeitig zu speichern. Es kann auch in einigen Fällen beim Streaming nützlich sein, um die Notwendigkeit von Datendeskriptoren zu vermeiden. Beachten Sie, dass die Verwendung dieser Option möglicherweise mehr Zeit benötigt, damit zip die Archivdatei am Ende in das Zieldateisystem kopieren kann.


-c
--entry-comments

Fügt jedem Eintrag eine einzeilige Kommentar hinzu. Dateioperationen (Hinzufügen, Aktualisieren) werden zuerst ausgeführt, und der Benutzer wird dann aufgefordert, für jeden Eintrag einen einzeiligen Kommentar einzugeben. Geben Sie den Kommentar gefolgt von einem Zeilenumbruch ein, oder nur einen Zeilenumbruch, um keinen Kommentar hinzuzufügen.

-C
--preserve-case
[VMS] Behält die Groß-/Kleinschreibung auf VMS bei. Durch die Negation dieser Option (-C-) wird alles in Kleinbuchstaben umgewandelt.

-C2
--preserve-case-2
[VMS] Behält die Groß-/Kleinschreibung in ODS2 auf VMS bei. Durch die Negation dieser Option (-C2-) wird alles in Kleinbuchstaben umgewandelt.

-C5
--preserve-case-5
[VMS] Behält die Groß-/Kleinschreibung in ODS5 auf VMS bei. Durch die Negation dieser Option (-C5-) wird alles in Kleinbuchstaben umgewandelt.

-d
--delete

Entfernt Einträge aus einem Zip-Archiv. Zum Beispiel:

zip -d foo foo/tom/junk foo/harry/\* \*.o

entfernt den Eintrag foo/tom/junk, alle Dateien, die mit foo/harry/ beginnen, und alle Dateien, die mit .o enden (in einem beliebigen Pfad). Beachten Sie, dass die Shell-Pfaderweiterung durch Backslashes verhindert wird, sodass Zip die Sternchen sehen kann, wodurch Zip die Inhalte des Zip-Archivs und nicht die Inhalte des aktuellen Verzeichnisses abgleichen kann. (Die Backslashes werden auf MSDOS-basierten Plattformen nicht verwendet). Sie können auch Anführungszeichen verwenden, um die Sternchen zu maskieren, z. B.

zip -d foo foo/tom/junk "foo/harry/*" "*.o"

Wenn die Sternchen auf einem System, auf dem die Shell Wildcards erweitert, nicht maskiert werden, könnten die Sternchen in eine Liste von Dateien im aktuellen Verzeichnis umgewandelt werden, und diese Liste würde zum Löschen von Einträgen aus dem Archiv verwendet.

Unter MSDOS ist -d bei der Übereinstimmung von Namen im Zip-Archiv case-sensitiv. Dies erfordert, dass Dateinamen in Großbuchstaben eingegeben werden, wenn sie von PKZIP auf einem MSDOS-System gezippt wurden. (Wir haben in Betracht gezogen, dies auf Systemen, auf denen Pfade case-insensitiv sind, case-insensitiv zu machen, aber es ist möglich, dass das Archiv von einem System stammt, auf dem die Groß-/Kleinschreibung wichtig ist, und das Archiv kann sowohl Bar als auch bar als separate Dateien enthalten). Siehe aber die neue Option -ic, um die Groß-/Kleinschreibung im Archiv zu ignorieren.

-db
--display-bytes

Zeigt laufende Byte-Zahlen an, die die gezippten Bytes und die verbleibenden Bytes anzeigen.

-dc
--display-counts

Zeigt eine laufende Anzahl der gezippten Einträge und der verbleibenden Einträge an.

-dd
--display-dots

Zeigt Punkte an, während jeder Eintrag gezippt wird (außer auf Ports, die ihre eigene Fortschrittsanzeige haben). Siehe -ds unten, um die Punktgröße festzulegen. Standardmäßig ist dies ein Punkt pro 10 MB der Eingabedatei. Die Option -v zeigt ebenfalls Punkte an (früher mit einer viel höheren Rate, aber jetzt ist auch -v standardmäßig auf 10 MB eingestellt), und diese Rate wird ebenfalls über -ds gesteuert.

-df
--datafork
[MacOS] Nur die Daten-Fork der Dateien in das Archiv aufnehmen. Gut zum Exportieren von Dateien
in fremde Betriebssysteme. Ressourcen-Forks werden vollständig ignoriert.

-dg
--display-globaldots

Zeigt Fortschrittspunkte für das Archiv anstelle für jede Datei an. Der Befehl

zip -qdgds 10m

schaltet die meisten Ausgaben ab, mit Ausnahme von Punkten, die alle 10 MB angezeigt werden.

-ds Größe
--dot-size Größe

Legt die Menge der verarbeiteten Eingabedatei fest, für die jeweils ein Punkt angezeigt wird. Siehe -dd, um die Anzeige von Punkten zu aktivieren. Das Setzen dieser Option impliziert -dd. Die Größe ist im Format nm, wobei n eine Zahl und m ein Multiplikator ist. Derzeit kann m k (KB), m (MB), g (GB) oder t (TB) sein, so dass bei n = 100 und m = k die Größe 100k, d. h. 100 KB, beträgt. Der Standardwert ist 10 MB.

Die Option -v zeigt ebenfalls Punkte an und hat jetzt ebenfalls einen Standardwert von 10 MB. Diese Rate wird ebenfalls durch diese Option gesteuert. Eine Größe von 0 schaltet die Punkte aus.

Diese Option steuert nicht die Punkte in der Meldung „Dateien werden gescannt“, während zip die Eingabedateien scannt. Die Punktgröße dafür ist auf 2 Sekunden oder eine feste Anzahl von Einträgen festgelegt, je nachdem, welcher Wert länger ist.

-du
--display-usize

Zeigt die unkomprimierte Größe jedes Eintrags an.

-dv
--display-volume

Zeigt die Volumennummer (Festplatte) an, von der jeder Eintrag gelesen wird, wenn ein vorhandenes Archiv gelesen wird, und in die er geschrieben wird.

-D
--no-dir-entries

Es werden keine Einträge für Verzeichnisse im Zip-Archiv erstellt. Standardmäßig werden Verzeichniseinträge erstellt, damit deren Attribute im Zip-Archiv gespeichert werden können. Die Umgebungsvariable ZIPOPT kann verwendet werden, um die Standardoptionen zu ändern. Zum Beispiel unter Unix mit sh:

ZIPOPT="-D"; export ZIPOPT

(Die Variable ZIPOPT kann für jede Option verwendet werden, einschließlich -i und -x, wobei ein neues Optionsformat verwendet wird, das unten detailliert beschrieben wird, und kann mehrere Optionen enthalten.) Die Option -D ist eine Kurzform für -x "*/", aber letzteres konnte zuvor nicht als Standardwert in der Umgebungsvariable ZIPOPT festgelegt werden, da der Inhalt von ZIPOPT in der Nähe des Anfangs der Befehlszeile eingefügt wird und die Dateiliste am Ende der Zeile enden musste.

Diese Version von zip erlaubt die Verwendung der Optionen -x und -i in ZIPOPT, wenn das Format

-x Datei Datei ... @

verwendet wird, wobei das @ (ein Argument, das nur @ ist) die Liste beendet.

-DF
--difference-archive

Erstellt ein Archiv, das alle neuen und geänderten Dateien enthält, seit das ursprüngliche Archiv erstellt wurde. Dazu müssen die Eingabedateiliste und das aktuelle Verzeichnis mit denen während des ursprünglichen Zip-Vorgangs übereinstimmen.

Wenn beispielsweise das vorhandene Archiv mit dem Befehl

zip -r foofull .

im Verzeichnis bar erstellt wurde, erstellt der Befehl

zip -r foofull . -DF --out foonew

ebenfalls im Verzeichnis bar das Archiv foonew, das nur die Dateien enthält, die nicht in foofull enthalten sind, und die Dateien, bei denen sich die Größe oder die Dateizeit von den Dateien in foofull unterscheidet.

Beachten Sie, dass die Umgebungsvariable TZ gemäß der lokalen Zeitzone gesetzt werden sollte, damit diese Option korrekt funktioniert. Eine Änderung der Zeitzone seit der Erstellung des ursprünglichen Archivs könnte dazu führen, dass keine Zeiten übereinstimmen und alle Dateien einbezogen werden.

Ein möglicher Ansatz für die Sicherung eines Verzeichnisses könnte darin bestehen, ein normales Archiv der Inhalte des Verzeichnisses als vollständige Sicherung zu erstellen und dann diese Option zu verwenden, um inkrementelle Sicherungen zu erstellen.

-e
--encrypt

Verschlüsselt den Inhalt des Zip-Archivs mithilfe eines Passworts, das im Terminal eingegeben wird, wenn Sie dazu aufgefordert werden (dies wird nicht auf dem Bildschirm angezeigt; wenn der Standardfehler kein TTY ist, beendet zip das Programm mit einer Fehlermeldung). Die Passwortabfrage wird wiederholt, um Tippfehler des Benutzers zu vermeiden.


-E
--longnames
[OS/2] Verwenden Sie das .LONGNAME-Erweiterte Attribut (falls vorhanden) als Dateiname.

-f
--freshen

Ersetzen Sie einen vorhandenen Eintrag im Zip-Archiv nur dann, wenn er neuer ist als die bereits im Zip-Archiv vorhandene Version; im Gegensatz zur Option „update“ (-u) werden hiermit keine Dateien hinzugefügt, die noch nicht im Zip-Archiv vorhanden sind. Zum Beispiel:

zip -f foo

Dieser Befehl sollte aus demselben Verzeichnis ausgeführt werden, aus dem der ursprüngliche Zip-Befehl ausgeführt wurde, da die in Zip-Archiven gespeicherten Pfade immer relativ sind.

Beachten Sie, dass die Umgebungsvariable TZ auf die lokale Zeitzone gesetzt sein sollte, damit die Optionen -f, -u und -o korrekt funktionieren.

Die Gründe dafür sind etwas subtil, hängen aber mit den Unterschieden zwischen den Unix-Dateizeiten (immer in GMT) und den meisten anderen Betriebssystemen (immer lokale Zeit) und der Notwendigkeit zusammen, die beiden zu vergleichen. Ein typischer TZ-Wert ist „MET-1MEST“ (mitteleuropäische Zeit mit automatischer Anpassung für „Sommerzeit“).

Das Format ist TTThhDDD, wobei TTT die Zeitzone ist, z. B. MET, hh die Differenz zwischen GMT und der lokalen Zeit ist, z. B. -1 oben, und DDD die Zeitzone ist, in der die Sommerzeit gilt. Lassen Sie DDD weg, wenn es keine Sommerzeit gibt. Für die US-amerikanische Eastern Time Zone EST5EDT.

-F
--fix
-FF
--fixfix

Reparieren Sie das Zip-Archiv. Die Option -F kann verwendet werden, wenn einige Teile des Archivs fehlen, erfordert aber ein relativ intaktes zentrales Verzeichnis. Das Eingabearchiv wird wie gewohnt gescannt, aber Zip ignoriert einige Probleme. Das resultierende Archiv sollte gültig sein, aber alle inkonsistenten Einträge werden entfernt.

Wenn es verdoppelt wird, wie in -FF, wird das Archiv vom Anfang an gescannt und Zip sucht nach speziellen Signaturen, um die Grenzen zwischen den Archivmitgliedern zu identifizieren. Die einfache Option -F ist zuverlässiger, wenn das Archiv nicht zu stark beschädigt ist, versuchen Sie also zuerst diese Option.

Wenn das Archiv zu stark beschädigt ist oder das Ende abgeschnitten wurde, müssen Sie -FF verwenden. Dies ist eine Änderung gegenüber Zip 2.32, bei dem die Option -F in der Lage war, ein abgeschnittenes Archiv zu lesen. Die Option -F repariert nun zuverlässiger Archive mit geringfügigen Schäden, und die Option -FF ist erforderlich, um Archive zu reparieren, bei denen -F früher möglicherweise ausgereicht hätte.

Keine der beiden Optionen kann Archive wiederherstellen, die in der ASCII-Anstatt der Binär-Modus übertragen wurden. Nach der Reparatur kann die Option -t von Unzip zeigen, dass einige Dateien ein schlechtes CRC aufweisen. Solche Dateien können nicht wiederhergestellt werden; Sie können sie mit der Option -d von Zip aus dem Archiv entfernen.

Beachten Sie, dass -FF möglicherweise Schwierigkeiten hat, Archive zu reparieren, die ein eingebettetes Zip-Archiv enthalten, das (ohne Komprimierung) im Archiv gespeichert wurde, und je nach Beschädigung findet es möglicherweise die Einträge im eingebetteten Archiv anstelle des Archivs selbst. Versuchen Sie es zuerst mit -F, da dieses Problem nicht auftritt.


Das Format der Befehle zum Beheben von Fehlern hat sich geändert. Um beispielsweise das beschädigte Archiv foo.zip zu reparieren, verwenden Sie:

zip -F foo --out foofix

Dieser Befehl versucht, die Einträge normal zu lesen und die intakten Einträge in das neue Archiv foofix.zip zu kopieren. Wenn dies nicht funktioniert, z. B. wenn das Archiv abgeschnitten ist oder einige Einträge, von denen Sie wissen, dass sie sich im Archiv befinden, fehlen, versuchen Sie Folgendes:

zip -FF foo --out foofixfix

Vergleichen Sie das resultierende Archiv mit dem durch die Option -F erstellten Archiv. Die Option -FF kann ein inkonsistentes Archiv erstellen. Abhängig von der Art der Beschädigung können Sie dann die Option -F verwenden, um dieses Archiv zu reparieren.

Ein aufgeteiltes Archiv mit fehlenden Split-Dateien kann mit -F repariert werden, wenn Sie die letzte Split-Datei (.zip) des Archivs haben. Wenn diese Datei fehlt, müssen Sie -FF verwenden, um das Archiv zu reparieren, woraufhin Sie aufgefordert werden, die vorhandenen Split-Dateien anzugeben.

Derzeit können die Optionen zum Beheben von Fehlern keine Einträge wiederherstellen, die eine fehlerhafte Prüfsumme aufweisen oder anderweitig beschädigt sind.

^ FI ^ -fifo [Unix] Normalerweise überspringt zip das Lesen aller gefundenen FIFOs (benannten Pipes), da zip hängen bleiben kann, wenn die FIFO nicht mit Daten versorgt wird. Diese Option weist zip an, den Inhalt aller gefundenen FIFOs zu lesen.

^ FS ^ -filesync Synchronisiert den Inhalt eines Archivs mit den Dateien auf dem Betriebssystem. Normalerweise werden beim Aktualisieren eines Archivs neue Dateien hinzugefügt und geänderte Dateien aktualisiert, aber Dateien, die nicht mehr auf dem Betriebssystem vorhanden sind, werden nicht aus dem Archiv gelöscht. Diese Option aktiviert einen neuen Modus, der die Einträge im Archiv mit dem Dateisystem vergleicht. Wenn die Dateizeit und -größe des Eintrags mit der der Datei auf dem Betriebssystem übereinstimmen, wird der Eintrag aus dem alten Archiv kopiert, anstatt aus dem Dateisystem gelesen und komprimiert zu werden. Wenn sich die Datei auf dem Betriebssystem geändert hat, wird der Eintrag gelesen und wie gewohnt komprimiert. Wenn der Eintrag im Archiv nicht mit einer Datei auf dem Betriebssystem übereinstimmt, wird der Eintrag gelöscht. Durch die Aktivierung dieser Option sollten Archive erstellt werden, die mit neuen Archiven identisch sind, aber da vorhandene Einträge kopiert werden, anstatt komprimiert zu werden, kann das Aktualisieren eines vorhandenen Archivs mit -FS viel schneller sein, als ein neues Archiv zu erstellen. Erwägen Sie auch die Verwendung von -u zum Aktualisieren eines Archivs.

Damit diese Option funktioniert, sollte das Archiv aus demselben Verzeichnis aktualisiert werden, in dem es erstellt wurde, sodass die relativen Pfade übereinstimmen. Wenn nur wenige Dateien aus dem alten Archiv kopiert werden, kann es schneller sein, ein neues Archiv zu erstellen.

Beachten Sie, dass die Umgebungsvariable TZ auf die lokale Zeitzone eingestellt sein sollte, damit diese Option korrekt funktioniert. Eine Änderung der Zeitzone seit der Erstellung des ursprünglichen Archivs kann dazu führen, dass keine Zeiten übereinstimmen und alle Dateien neu komprimiert werden.

Diese Option löscht Dateien aus dem Archiv. Wenn Sie das ursprüngliche Archiv beibehalten müssen, erstellen Sie eine Kopie des Archivs oder verwenden Sie die Option --out, um das aktualisierte Archiv in eine neue Datei auszugeben. Auch wenn es langsamer sein mag, ist das Erstellen eines neuen Archivs mit einem neuen Archivnamen sicherer, vermeidet Abweichungen zwischen Archiv- und Betriebssystempfaden und wird bevorzugt.


-g
--grow

Erweitert (fügt hinzu) das angegebene Zip-Archiv, anstatt ein neues zu erstellen. Wenn dieser Vorgang fehlschlägt, versucht Zip, das Archiv in seinen ursprünglichen Zustand zurückzuversetzen. Wenn die Wiederherstellung fehlschlägt, kann das Archiv beschädigt werden. Diese Option wird ignoriert, wenn kein vorhandenes Archiv vorhanden ist oder wenn mindestens ein Archivmember aktualisiert oder gelöscht werden muss.

-h
-?
--help

Zeigt die Zip-Hilfeinformationen an (dies wird auch angezeigt, wenn Zip ohne Argumente ausgeführt wird).

-h2
--more-help

Zeigt erweiterte Hilfe an, einschließlich weiterer Informationen zum Befehlszeilenformat, zur Musterübereinstimmung und zu weniger gebräuchlichen Optionen.

-i Dateien
--include Dateien

Nur die angegebenen Dateien einschließen, z. B.:

zip -r foo . -i \*.c

Dadurch werden nur die Dateien, die in der aktuellen und ihren Unterverzeichnissen mit .c enden, eingeschlossen. (Hinweis für PKZIP-Benutzer: Der entsprechende Befehl ist

pkzip -rP foo *.c

PKZIP erlaubt keine Rekursion in anderen Verzeichnissen als dem aktuellen.) Der Backslash verhindert die Dateinamenerweiterung durch die Shell, sodass die Namensübereinstimmung von Zip auf allen Verzeichnisebenen durchgeführt wird. [Dies gilt für Unix und andere Systeme, bei denen \ das nächste Zeichen ausklammert. Für andere Systeme, bei denen die Shell * nicht verarbeitet, verwenden Sie kein \ und das obige ist

zip -r foo . -i *.c

Beispiele sind für Unix, sofern nicht anders angegeben.] Um also dir, ein Verzeichnis direkt unter dem aktuellen Verzeichnis, einzuschließen, verwenden Sie

zip -r foo . -i dir/\*

oder

zip -r foo . -i "dir/*"

um Pfade wie dir/a und dir/b/file.c abzugleichen [auf Ports ohne Wildcard-Erweiterung in der Shell, wie z. B. MSDOS und Windows

zip -r foo . -i dir/*

wird verwendet.] Beachten Sie, dass derzeit der abschließende / für Verzeichnisse benötigt wird (wie in

zip -r foo . -i dir/

um das Verzeichnis dir einzuschließen).

Die lange Optionsform des ersten Beispiels ist

zip -r foo . --include \*.c

und bewirkt das Gleiche wie die kurze Optionsform.

Obwohl die Befehlssyntax früher verlangte, dass -i am Ende der Befehlszeile steht, ist dies in dieser Version tatsächlich an jeder Stelle zulässig. Die Dateiliste endet am nächsten Argument, das mit - beginnt, am Ende der Befehlszeile oder am Listen-Terminator @ (ein Argument, das nur @ ist). Die obige Eingabe kann also wie folgt erfolgen:

zip -i \*.c @ -r foo .

Es muss ein Leerzeichen zwischen der Option und der ersten Datei einer Liste vorhanden sein. Für nur eine Datei können Sie die Einzelwertform verwenden

zip -i\*.c -r foo .

(kein Leerzeichen zwischen Option und Wert) oder

zip --include=\*.c -r foo .

als zusätzliche Beispiele. Die Einzelwertformen sind nicht empfehlenswert, da sie verwirrend sein können und insbesondere das -ifile-Format Probleme verursachen kann, wenn der erste Buchstabe der Datei mit i kombiniert wird und eine zweistellige Option bildet, die mit i beginnt. Verwenden Sie -sc, um zu sehen, wie Ihre Befehlszeile geparst wird.

Auch möglich:

zip -r foo . -_

Dadurch werden nur die Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen eingeschlossen, die den Mustern in der Datei include.lst entsprechen.

Dateien für -i und -x sind Muster, die interne Archivpfade abgleichen. Siehe -R für weitere Informationen zu Mustern.

`-I`
`--no-image`
`[Acorn RISC OS]` Scannen Sie keine Image-Dateien. Wenn diese Option verwendet wird, betrachtet `zip` Image-Dateien (z. B. DOS-Partitionen oder Spark-Archive, wenn SparkFS geladen ist) nicht als Verzeichnisse, sondern speichert sie als einzelne Dateien.

Zum Beispiel: Wenn Sie SparkFS geladen haben, führt das Zippen eines Spark-Archivs zu einer Zip-Datei, die ein Verzeichnis (und dessen Inhalt) enthält. Die Verwendung der Option `-I` führt zu einer Zip-Datei, die ein Spark-Archiv enthält. Offensichtlich wird dieser zweite Fall auch ohne die Option `-I` erreicht, wenn SparkFS nicht geladen ist.

`-ic`
`--ignore-case`
`[VMS, WIN32]` Ignorieren Sie die Groß-/Kleinschreibung beim Abgleichen von Archiv-Einträgen. Diese Option ist nur auf Systemen verfügbar, bei denen die Groß-/Kleinschreibung von Dateien ignoriert wird. Auf Systemen mit einem Dateisystem, das die Groß-/Kleinschreibung ignoriert, wird die Groß-/Kleinschreibung normalerweise beim Abgleichen von Dateien im Dateisystem ignoriert, aber nicht für `-f` (aktualisieren), `-d` (löschen), `-U` (kopieren) und ähnliche Modi beim Abgleichen mit Archiv-Einträgen (derzeit ignoriert `-f` die Groß-/Kleinschreibung unter VMS), da Archiv-Einträge von Systemen stammen können, bei denen die Groß-/Kleinschreibung wichtig ist, und Namen, die sich nur in der Groß-/Kleinschreibung unterscheiden, in einem Archiv vorhanden sein können. Die Option `-ic` macht das Abgleichen unabhängig von der Groß-/Kleinschreibung. Dies kann dazu führen, dass mehrere Archiv-Einträge mit einem Befehlszeilenmuster übereinstimmen.

`-j`
`--junk-paths`
Speichern Sie nur den Namen der gespeicherten Datei (entfernen Sie den Pfad) und speichern Sie keine Verzeichnisnamen. Standardmäßig speichert `zip` den vollständigen Pfad (relativ zum aktuellen Verzeichnis).

`-jj`
`--absolute-path`
`[MacOS]` Zeichnen Sie `Fullpath` (+ `Volname`) auf. Der vollständige Pfad einschließlich des Volumes wird gespeichert. Standardmäßig wird der relative Pfad gespeichert.

`-J`
`--junk-sfx`
Entfernen Sie alle vorangestellten Daten (z. B. ein SFX-Stub) aus dem Archiv.

`-k`
`--DOS-names`
Versuchen Sie, die Namen und Pfade so zu konvertieren, dass sie mit MSDOS übereinstimmen, speichern Sie nur das MSDOS-Attribut (nur das Schreibattribut des Benutzers von Unix) und markieren Sie den Eintrag als unter MSDOS erstellt (auch wenn dies nicht der Fall war); für die Kompatibilität mit PKUNZIP unter MSDOS, das bestimmte Namen wie solche mit zwei Punkten nicht verarbeiten kann.

`-l`
`--to-crlf`
Übersetzen Sie das Unix-Zeilenendezeichen LF in die MSDOS-Konvention CR LF. Diese Option sollte nicht für Binärdateien verwendet werden. Diese Option kann unter Unix verwendet werden, wenn die Zip-Datei für PKUNZIP unter MSDOS bestimmt ist. Wenn die Eingabedateien bereits CR LF enthalten, fügt diese Option ein zusätzliches CR hinzu. Dies soll sicherstellen, dass `unzip -a` unter Unix eine exakte Kopie der ursprünglichen Datei wiederherstellt, um die Wirkung von `zip -l` aufzuheben. Siehe `-ll` für die Behandlung von Binärdateien.

`-la`
`--log-append`
An die vorhandene Protokolldatei anhängen. Standardmäßig wird die Datei überschrieben.

`-lf logfilepath`
`--logfile-path logfilepath`
Öffnen Sie eine Protokolldatei am angegebenen Pfad. Standardmäßig wird eine vorhandene Datei an diesem Speicherort überschrieben, aber die Option `-la` führt dazu, dass eine vorhandene Datei geöffnet und die neuen Protokollinformationen an die vorhandenen Informationen angehängt werden. Nur Warnungen und Fehler werden in die Protokolldatei geschrieben, es sei denn, die Option `-li` wird ebenfalls angegeben, dann werden auch alle Informationsmeldungen in die Protokolldatei geschrieben.

-li
--log-info

Schließt Informationsmeldungen, wie z. B. Dateinamen, die gezippt werden, in das Protokoll ein. Standardmäßig werden nur die Befehlszeile, Warnungen und Fehler sowie der endgültige Status protokolliert.

-ll
--from-crlf

Konvertiert das MSDOS-Zeilenende CR LF in Unix LF. Diese Option sollte nicht für Binärdateien verwendet werden. Diese Option kann unter MSDOS verwendet werden, wenn die Zip-Datei für die Verwendung mit Unzip unter Unix bestimmt ist. Wenn die Datei konvertiert wird und später festgestellt wird, dass es sich um eine Binärdatei handelt, wird eine Warnung ausgegeben und die Datei ist wahrscheinlich beschädigt. In dieser Version gibt Zip jetzt eine Warnung aus und überspringt die Zeilenendkonvertierung für die Datei, wenn -ll Binärdaten im ersten gelesenen Puffer einer Datei erkennt. Diese Überprüfung scheint alle getesteten Binärdateien zu erkennen, aber die ursprüngliche Überprüfung bleibt bestehen, und wenn eine konvertierte Datei später als Binärdatei erkannt wird, wird diese Warnung weiterhin ausgegeben. Ein neuer Algorithmus wird jetzt für die Binärdateierkennung verwendet, der die Zeilenendkonvertierung von Textdateien in UTF-8 und ähnlichen Kodierungen ermöglichen sollte.

-L
--license

Zeigt die Zip-Lizenz an.

-m
--move

Verschiebt die angegebenen Dateien in das Zip-Archiv; tatsächlich löscht dies die Zieldirektorien/Dateien, nachdem das angegebene Zip-Archiv erstellt wurde. Wenn ein Verzeichnis nach dem Entfernen der Dateien leer wird, wird auch das Verzeichnis entfernt. Keine Löschvorgänge werden durchgeführt, bis Zip das Archiv erfolgreich erstellt hat. Dies ist nützlich, um Speicherplatz zu sparen, kann aber gefährlich sein. Es wird empfohlen, es in Kombination mit -T zu verwenden, um das Archiv zu testen, bevor alle Eingabedateien entfernt werden.

-MM
--must-match

Alle Eingabemuster müssen mindestens einer Datei entsprechen, und alle gefundenen Eingabedateien müssen lesbar sein. Normalerweise wird eine Warnung "Name nicht gefunden" ausgegeben, wenn ein Eingabemuster keiner Datei entspricht, und wenn eine Eingabedatei gefunden wurde, aber später fehlt oder nicht lesbar ist, wird eine Warnung "Fehlende oder nicht lesbare Datei" ausgegeben. In beiden Fällen setzt Zip die Erstellung des Archivs fort, wobei fehlende oder nicht lesbare neue Dateien übersprungen und bereits im Archiv vorhandene Dateien unverändert bleiben. Nachdem das Archiv erstellt wurde, gibt Zip, wenn Dateien nicht lesbar waren, den Fehlercode OPEN (18 auf den meisten Systemen) anstelle des normalen Erfolgscodes (0 auf den meisten Systemen) zurück. Wenn -MM gesetzt ist, beendet Zip die Ausführung, sobald ein Eingabemuster keiner Datei entspricht (wann immer die Warnung "Name nicht gefunden" ausgegeben würde) oder wenn eine Eingabedatei nicht lesbar ist. In beiden Fällen beendet Zip die Ausführung mit einem Fehlercode OPEN und es wird kein Archiv erstellt.

Diese Option ist nützlich, wenn eine bekannte Liste von Dateien gezippt werden soll, sodass fehlende oder nicht lesbare Dateien zu einem Fehler führen. Es ist weniger nützlich, wenn es mit Wildcards verwendet wird, aber Zip beendet die Ausführung immer noch mit einem Fehler, wenn ein Eingabemuster mindestens einer Datei nicht entspricht und wenn alle übereinstimmenden Dateien nicht lesbar sind. Wenn Sie das Archiv trotzdem erstellen und nur feststellen möchten, ob Dateien übersprungen wurden, verwenden Sie -MM nicht und überprüfen Sie stattdessen den Rückgabewert. Außerdem könnte -lf nützlich sein.


-n Suffixe
--suffixes Suffixe

Versuchen Sie nicht, Dateien zu komprimieren, die die angegebenen Suffixe haben. Solche Dateien werden einfach (0 % Komprimierung) in der Ausgabedatei gespeichert, sodass Zip seine Zeit nicht damit verschwendet, sie zu komprimieren. Die Suffixe werden entweder durch Doppelpunkte oder Semikolons getrennt. Zum Beispiel:

zip -rn .Z:.zip:.tiff:.gif:.snd foo foo

kopiert alles aus „foo“ in „foo.zip“, speichert aber alle Dateien, die mit .Z, .zip, .tiff, .gif oder .snd enden, ohne zu versuchen, sie zu komprimieren (Bild- und Audiodateien haben oft ihre eigenen speziellen Komprimierungsmethoden). Standardmäßig komprimiert Zip keine Dateien mit den Erweiterungen .Z:.zip:.zoo:.arc:.lzh:.arj. Solche Dateien werden direkt im Ausgabearchiv gespeichert. Die Umgebungsvariable ZIPOPT kann verwendet werden, um die Standardoptionen zu ändern. Zum Beispiel unter Unix mit csh:

setenv ZIPOPT "-n .gif:.zip"

Um die Komprimierung aller Dateien zu erzwingen, verwenden Sie:

zip -n : foo

Die maximale Komprimierungsoption -9 versucht auch, alle Dateien unabhängig von der Erweiterung zu komprimieren.

Auf Acorn RISC OS-Systemen sind die Suffixe tatsächlich Dateitypen (3-stelliges Hexadezimalformat). Standardmäßig komprimiert Zip keine Dateien mit Dateitypen in der Liste DDC:D96:68E (d. h. Archive, CFS-Dateien und PackDir-Dateien).

-nw
--no-wild

Verhindern Sie die interne Wildcard-Verarbeitung (die Shell-Verarbeitung von Wildcards wird weiterhin von der Shell durchgeführt, es sei denn, die Argumente werden maskiert). Nützlich, wenn eine Liste von Pfaden gelesen wird und keine Wildcard-Substitution gewünscht ist.

-N
--notes
[Amiga, MacOS] Speichern Sie die Amiga- oder MacOS-Dateinotizen als Zip-Datei-Kommentare. Diese können mit der Option -N von unzip wiederhergestellt werden. Wenn auch -c verwendet wird, werden Sie nur für diejenigen Dateien aufgefordert, für die keine Dateinotizen vorhanden sind, Kommentare einzugeben.

-o
--latest-time

Legen Sie die „letzte Änderungszeit“ des Zip-Archivs auf die späteste (früheste) „letzte Änderungszeit“ fest, die unter den Einträgen im Zip-Archiv gefunden wurde. Dies kann auch ohne andere Operationen verwendet werden, wenn gewünscht. Zum Beispiel:

zip -o foo

ändert die letzte Änderungszeit von foo.zip auf die späteste Zeit der Einträge in foo.zip.

-O Ausgabedatei
--output-file Ausgabedatei

Verarbeiten Sie die Archivänderungen wie gewohnt, geben Sie das neue Archiv aber an der Ausgabedatei aus, anstatt das vorhandene Archiv zu aktualisieren. Nützlich, um ein Archiv zu aktualisieren, ohne das vorhandene Archiv zu ändern, und die Eingabedatei muss sich von der Ausgabedatei unterscheiden.

Diese Option kann verwendet werden, um aktualisierte Split-Archive zu erstellen. Sie kann auch mit -U verwendet werden, um Einträge aus einem vorhandenen Archiv in ein neues Archiv zu kopieren. Siehe den Abschnitt EXAMPLES unten.


Eine weitere Verwendung ist das Konvertieren von ZIP-Dateien von einer Aufteilunggröße in eine andere. Um beispielsweise ein Archiv mit 700-MB-CD-Aufteilungen in eines mit 2-GB-DVD-Aufteilungen zu konvertieren, können Sie Folgendes verwenden:

zip -s 2g cd-split.zip --out dvd-split.zip

was den Kopier-Modus verwendet. Siehe -U unten. Außerdem:

zip -s 0 split.zip --out unsplit.zip

wandelt ein aufgeteiltes Archiv in ein einzelnes Archiv um.

Der Kopier-Modus konvertiert Stream-Einträge (unter Verwendung von Datendeskriptoren und die mit den meisten Entpackprogrammen kompatibel sein sollten) in normale Einträge (die mit allen Entpackprogrammen kompatibel sein sollten), es sei denn, es wurde eine Standardverschlüsselung verwendet. Für Archive mit verschlüsselten Einträgen wird zipcloak die Einträge entschlüsseln und in normale Einträge konvertieren.

-p
--paths

Relative Dateipfade als Teil der in dem Archiv gespeicherten Dateinamen einbeziehen. Dies ist die Standardeinstellung. Die Option -j verwirft die Pfade und speichert nur die Dateinamen.

-P Passwort
--password Passwort

Verwenden Sie ein Passwort, um ZIP-Dateieinträge zu verschlüsseln (falls vorhanden). DIES IST UNSICHER! Viele Mehrbenutzerbetriebssysteme bieten Möglichkeiten, mit denen jeder Benutzer die aktuelle Befehlszeile eines anderen Benutzers sehen kann; selbst auf Standalone-Systemen besteht immer die Gefahr, dass jemand über die Schulter schaut. Das Speichern des Klartext-Passworts als Teil einer Befehlszeile in einem automatisierten Skript ist noch schlimmer. Verwenden Sie, wann immer möglich, die nicht-einsichtige, interaktive Eingabeaufforderung, um Passwörter einzugeben. (Und wo Sicherheit wirklich wichtig ist, verwenden Sie eine starke Verschlüsselung wie Pretty Good Privacy anstelle der relativ schwachen Standardverschlüsselung, die von ZIP-Dienstprogrammen bereitgestellt wird.)

-q
--quiet

Lautloser Modus; Informationsmeldungen und Kommentaraufforderungen werden unterdrückt. (Nützlich zum Beispiel in Shell-Skripten und Hintergrundaufgaben.)

-Qn
--Q-flag n
[QDOS] Speichert Informationen über die Datei im Datei-Header, wobei n als Bit 0 definiert ist: Keine Header für keine Datei hinzufügen.
Bit 1: Header für alle Dateien hinzufügen.
Bit 2: Keine interaktive Tasteneingabe beim Beenden abwarten.

-r
--recurse-paths

Die Verzeichnisstruktur rekursiv durchlaufen; zum Beispiel:

zip -r foo.zip foo

oder kürzer:

zip -r foo foo

In diesem Fall werden alle Dateien und Verzeichnisse in foo in einem ZIP-Archiv mit dem Namen foo.zip gespeichert, einschließlich der Dateien, deren Namen mit "." beginnen, da die Rekursion nicht den Mechanismus der Shell-Dateinamenersetzung verwendet. Wenn Sie nur eine bestimmte Teilmenge der Dateien in dem Verzeichnis foo und seinen Unterverzeichnissen einschließen möchten, verwenden Sie die Option -i, um das Muster der einzuschließenden Dateien anzugeben. Verwenden Sie -r nicht mit dem Namen ".*", da dies ".." abgleicht, was dazu führen würde, dass versucht wird, das übergeordnete Verzeichnis zu zippen (wahrscheinlich nicht das, was beabsichtigt war).

Mehrere Quellverzeichnisse sind zulässig, wie z. B.

zip -r foo foo1 foo2

wodurch zuerst foo1 und dann foo2 gezippt werden, wobei jedes Verzeichnis durchlaufen wird.

Beachten Sie, dass, obwohl Wildcards für -r typischerweise beim Durchlaufen der Verzeichnisse im Dateisystem aufgelöst werden, alle Wildcards -R, -x und -i auf interne Archivpfadnamen angewendet werden, sobald die Verzeichnisse gescannt wurden. Um Wildcards auf Dateien in Unterverzeichnissen anzuwenden, wenn in Unix und ähnlichen Systemen die Shell-Wildcard-Ersetzung verwendet wird, entweder alle Wildcards escapen oder alle Argumente mit Wildcards in Anführungszeichen setzen. Dies ermöglicht es zip, die Wildcards zu sehen und die Dateien in den Unterverzeichnissen während der Rekursion mit ihnen abzugleichen.


-R
--recurse-patterns

Durchläuft die Verzeichnisstruktur rekursiv, beginnend im aktuellen Verzeichnis; zum Beispiel:

zip -R foo "*.c"

In diesem Fall werden alle Dateien, die dem Muster *.c im Baum ab dem aktuellen Verzeichnis entsprechen, in ein ZIP-Archiv namens foo.zip gespeichert. Beachten Sie, dass *.c datei.c, a/datei.c und a/b/.c übereinstimmt. Es können mehrere Muster als separate Argumente angegeben werden. Hinweis für PKZIP-Benutzer: das entsprechende Kommando ist

pkzip -rP foo *.c

Muster sind relative Dateipfade, wie sie im Archiv erscheinen, oder wie sie nach dem Zippen sein werden, und können optional Wildcards enthalten. Zum Beispiel, wenn das aktuelle Verzeichnis foo ist und darunter die Verzeichnisse foo1 und foo2 liegen und in foo1 die Datei bar.c,

zip -R foo/*

wird foo, foo/foo1, foo/foo1/bar.c und foo/foo2 zippen.

zip -R */bar.c

wird foo/foo1/bar.c zippen. Siehe den Hinweis für -r zum Escapen von Wildcards.

-RE
--regex
[WIN32] Vor Zip 3.0 war die Übereinstimmung mit regulären Ausdrücken unter Windows-Plattformen standardmäßig aktiviert. Aufgrund der Verwirrung, die durch die Notwendigkeit des Escapens von "[" und "]" in
Namen entsteht, ist diese Funktion jetzt standardmäßig für Windows deaktiviert, sodass "[" und "]" einfach normale Zeichen in
Namen sind. Diese Option aktiviert die []-Übereinstimmung wieder.

-s splitsize
--split-size splitsize

Ermöglicht die Erstellung eines aufgeteilten Archivs und legt die Aufteilungsgröße fest. Ein aufgeteiltes Archiv ist ein Archiv, das auf mehrere Dateien aufgeteilt werden kann. Während das Archiv erstellt wird, wird, wenn die Größe des Archivs die angegebene Aufteilungsgröße erreicht, diese Aufteilung geschlossen und die nächste Aufteilung geöffnet. Im Allgemeinen werden alle Aufteilungen außer der letzten die Aufteilungsgröße haben, und die letzte wird die verbleibende Größe sein. Wenn das gesamte Archiv kleiner als die Aufteilungsgröße ist, wird ein einzelnes Archiv erstellt.

Aufgeteilte Archive werden in nummerierten Dateien gespeichert. Wenn das Ausgabearchiv beispielsweise archive heißt und drei Aufteilungen erforderlich sind, befindet sich das resultierende Archiv in den drei Dateien archive.z01, archive.z02 und archive.zip. Ändern Sie nicht die Nummerierung dieser Dateien, da das Archiv sonst nicht lesbar ist, da diese zur Bestimmung der Reihenfolge verwendet werden, in der die Aufteilungen gelesen werden.

Die Aufteilungsgröße ist eine Zahl, der optional ein Multiplikator folgt. Derzeit muss die Zahl eine ganze Zahl sein. Der Multiplikator kann derzeit einer von k (Kilobyte), m (Megabyte), g (Gigabyte) oder t (Terabyte) sein. Da 64 KB die minimale Aufteilungsgröße ist, werden Zahlen ohne Multiplikatoren standardmäßig in Megabyte angegeben. Um beispielsweise ein aufgeteiltes Archiv namens foo mit dem Inhalt des Verzeichnisses bar mit Aufteilungen von 670 MB zu erstellen, die zum Beispiel zum Brennen auf CDs nützlich sein könnten, kann das Kommando verwendet werden:

zip -s 670m -r foo bar

Derzeit werden die alten Aufteilungen eines aufgeteilten Archivs nicht von einem neuen Archiv ausgeschlossen, sie können jedoch explizit ausgeschlossen werden. Wenn möglich, halten Sie die Eingabe- und Ausgabearchive aus dem Pfad, der beim Erstellen von aufgeteilten Archiven gezippt wird, fern.

Mit -s ohne -sp wie oben erzeugt man alle Splits, während foo geschrieben wird, in diesem Fall das aktuelle Verzeichnis. Dieser Split-Modus aktualisiert die Splits, während das Archiv erstellt wird, wodurch alle Splits beschreibbar bleiben müssen, erstellt aber Split-Archive, die von jedem unzip-Programm gelesen werden können, das Split-Archive unterstützt. Siehe -sp unten, um den Split-Pausenmodus zu aktivieren, der es ermöglicht, Splits direkt auf austauschbare Medien zu schreiben.

Die Option -sv kann verwendet werden, um eine ausführliche Split-Ausgabe zu aktivieren und Details darüber bereitzustellen, wie das Splitting durchgeführt wird. Die Option -sb kann verwendet werden, um ein akustisches Signal auszugeben, wenn zip für das nächste Split-Ziel pausiert.

Split-Archive können nicht aktualisiert werden, aber siehe die Option -O (--out), wie ein Split-Archiv aktualisiert werden kann, während es in ein neues Archiv kopiert wird. Ein Split-Archiv kann auch in ein Einzeldatei-Archiv konvertiert werden, indem eine Split-Größe von 0 verwendet oder die Option -s negiert wird:

zip -s 0 split.zip --out single.zip

Siehe auch -U (--copy) für weitere Informationen zur Verwendung des Kopiermodus.

-sb
--split-bell

Wenn das Splitten aktiviert ist und der Split-Pausenmodus verwendet wird, wird ein akustisches Signal ausgegeben, wenn zip für jedes Split-Ziel pausiert.

-sc
--show-command

Zeigt die Befehlszeile an, mit der zip gestartet wird, und beendet das Programm. Der neue Befehlszeilenparser ordnet die Argumente neu an und setzt alle Optionen und alle zugehörigen Werte vor alle Nicht-Optionsargumente. Dies ermöglicht es einer Option, überall in der Befehlszeile zu erscheinen, solange alle Werte, die zu der Option gehören, zusammen mit ihr angegeben werden. Diese Option zeigt die Befehlszeile so an, wie zip sie sieht, einschließlich aller Argumente aus der Umgebung, z. B. aus der Variablen ZIPOPT. Wenn erlaubt, können Optionen, die später in der Befehlszeile stehen, Optionen überschreiben, die früher in der Befehlszeile stehen.

-sf
--show-files

Zeigt die Dateien an, auf die zugegriffen werden würde, und beendet dann das Programm. Wenn beispielsweise ein neues Archiv erstellt wird, werden die Dateien aufgelistet, die hinzugefügt würden. Wenn die Option negiert ist, -sf-, wird die Ausgabe nur in eine geöffnete Protokolldatei geschrieben. Die Anzeige auf dem Bildschirm wird für große Listen nicht empfohlen.

-so
--show-options

Zeigt alle verfügbaren Optionen an, die von zip auf dem aktuellen System unterstützt werden. Da dieses Programm die Optionstabelle liest, sollten alle Optionen enthalten sein. Jede Zeile enthält die kurze Option (falls definiert), die lange Option (falls definiert), das Format eines Wertes, der zu der Option gehört, ob die Option negiert werden kann, und eine kurze Beschreibung. Das Format des Wertes kann kein Wert, erforderlicher Wert, optionaler Wert, einzelnes Zeichen, numerischer Wert oder eine Liste von Werten sein. Die Ausgabe dieser Option ist nicht dazu gedacht, die Verwendung einer Option zu zeigen, sondern nur die verfügbaren Optionen anzuzeigen.

-sp
--split-pause

Wenn das Splitten mit -s aktiviert ist, wird der Split-Pausenmodus aktiviert. Dies erstellt Split-Archive wie -s, verwendet aber das Streaming-Schreiben, sodass jeder Split geschlossen werden kann, sobald er geschrieben wurde, und zip pausiert zwischen jedem Split, um die Änderung des Split-Ziels oder der Medien zu ermöglichen.


Obwohl dieser Split-Modus das direkte Schreiben von Splits auf Wechselmedien ermöglicht, verwendet er ein Stream-Archivformat, das möglicherweise nicht von allen Entpackprogrammen gelesen werden kann. Bevor Sie sich auf mit -sp erstellte Splits verlassen, testen Sie ein Split-Archiv mit dem Entpackprogramm, das Sie verwenden werden.

Um ein Stream-Split-Archiv (erstellt mit -sp) in ein Standardarchiv zu konvertieren, verwenden Sie die Option --out.

-su
--show-unicode

Wie -sf, aber auch die Unicode-Version des Pfads anzeigen, falls vorhanden.

-sU
--show-just-unicode

Wie -sf, aber nur die Unicode-Version des Pfads anzeigen, falls vorhanden, andernfalls die Standardversion des Pfads anzeigen.

-sv
--split-verbose

Verschiedene ausführliche Meldungen während des Aufteilens aktivieren, die zeigen, wie das Aufteilen durchgeführt wird.

-S
--system-hidden
[MSDOS, OS/2, WIN32 und ATARI] System- und versteckte Dateien einschließen.
[MacOS] Enthält Finder-unsichtbare Dateien, die andernfalls ignoriert werden.

-t mmddyyyy
--from-date mmddyyyy

Nicht auf Dateien wirken, die vor dem angegebenen Datum geändert wurden, wobei mm der Monat (00-12), dd der Tag des Monats (01-31) und yyyy das Jahr ist. Das ISO 8601-Datumsformat yyyy-mm-dd wird ebenfalls akzeptiert. Zum Beispiel:

zip -rt 12071991 infamy foo

zip -rt 1991-12-07 infamy foo

fügt alle Dateien in foo und seinen Unterverzeichnissen, die am oder nach dem 7. Dezember 1991 zuletzt geändert wurden, zum Zip-Archiv infamy.zip hinzu.

-tt mmddyyyy
--before-date mmddyyyy

Nicht auf Dateien wirken, die nach oder am angegebenen Datum geändert wurden, wobei mm der Monat (00-12), dd der Tag des Monats (01-31) und yyyy das Jahr ist. Das ISO 8601-Datumsformat yyyy-mm-dd wird ebenfalls akzeptiert. Zum Beispiel:

zip -rtt 11301995 infamy foo

zip -rtt 1995-11-30 infamy foo

fügt alle Dateien in foo und seinen Unterverzeichnissen, die vor dem 30. November 1995 zuletzt geändert wurden, zum Zip-Archiv infamy.zip hinzu.

-T
--test

Die Integrität der neuen Zip-Datei testen. Wenn die Überprüfung fehlschlägt, bleibt die alte Zip-Datei unverändert und (mit der Option -m) werden keine Eingabedateien entfernt.

-TT cmd
--unzip-command cmd

Verwenden Sie anstelle von 'unzip -tqq' den Befehl cmd, um ein Archiv zu testen, wenn die Option -T verwendet wird. Unter Unix kann ein Kopie von unzip im aktuellen Verzeichnis anstelle des Standard-System-Unzip verwendet werden:

zip archive file1 file2 -T -TT "./unzip -tqq"

In cmd wird {} durch den Namen des temporären Archivs ersetzt, andernfalls wird der Name des Archivs an das Ende des Befehls angehängt. Der Rückgabewert wird auf Erfolg geprüft (0 unter Unix).

-u
--update

Einen vorhandenen Eintrag im Zip-Archiv ersetzen (aktualisieren), nur wenn er neuer ist als die Version, die bereits im Zip-Archiv vorhanden ist. Zum Beispiel:

zip -u stuff *

fügt alle neuen Dateien im aktuellen Verzeichnis hinzu und aktualisiert alle Dateien, die seit der letzten Erstellung/Änderung des Zip-Archivs stuff.zip geändert wurden (beachten Sie, dass zip nicht versucht, stuff.zip selbst zu packen, wenn Sie dies tun).

Beachten Sie, dass die Option -u ohne Eingabedateiargumente wie die Option -f (freshen) wirkt.


-U
--copy-entries

Kopiert Einträge von einem Archiv in ein anderes. Erfordert die Option --out, um eine andere Ausgabedatei als die Eingabedatei anzugeben. Der Kopiermodus ist das Gegenteil von -d delete. Wenn der Löschmodus zusammen mit --out verwendet wird, werden die ausgewählten Einträge aus dem Archiv gelöscht und alle anderen Einträge in das neue Archiv kopiert, während der Kopiermodus die Dateien auswählt, die in das neue Archiv aufgenommen werden sollen. Im Gegensatz zu -u update werden die Eingabemuster auf der Befehlszeile nur mit den Einträgen im Archiv und nicht mit den Dateien im Dateisystem abgeglichen. Zum Beispiel:

zip inarchive "*.c" --copy --out outarchive

kopiert Einträge mit Namen, die auf .c enden, von inarchive nach outarchive. Der Wildcard muss auf einigen Systemen maskiert werden, um zu verhindern, dass die Shell Namen von Dateien aus dem Dateisystem ersetzt, die möglicherweise keine Relevanz für die Einträge im Archiv haben.

Wenn keine Eingabedateien auf der Befehlszeile angegeben sind und --out verwendet wird, wird der Kopiermodus angenommen:

zip inarchive --out outarchive

Dies ist nützlich, um beispielsweise die Aufteilunggröße zu ändern. Das Verschlüsseln und Entschlüsseln von Einträgen wird im Kopiermodus noch nicht unterstützt. Verwenden Sie stattdessen zipcloak.

-UN v
--unicode v

Legt fest, was zip mit Unicode-Dateinamen tun soll. Zip 3.0 speichert zusätzlich zum Standarddateipfad auch die UTF-8-Übersetzung des Pfads, wenn der Eintragspfad nicht vollständig 7-Bit-ASCII ist. Wenn einem Eintrag der Unicode-Pfad fehlt, verwendet zip den Standarddateipfad. Das Problem bei der Verwendung des Standardpfads besteht darin, dass dieser Pfad im lokalen Zeichensatz des zip-Archivs gespeichert wird, das den Eintrag erstellt hat, was Zeichen enthalten kann, die im Zeichensatz des unzip-Programms ungültig sind. Wenn zip ein Archiv liest und ein Eintrag auch einen Unicode-Pfad enthält, verwendet zip standardmäßig den Unicode-Pfad, um den Standardpfad mit dem aktuellen lokalen Zeichensatz neu zu erstellen.

Diese Option kann verwendet werden, um festzulegen, was zip mit diesem Pfad tun soll, wenn es eine Diskrepanz zwischen dem gespeicherten Standardpfad und dem gespeicherten UTF-8-Pfad gibt (was passieren kann, wenn der Standardpfad aktualisiert wurde). In allen Fällen wird davon ausgegangen, dass der Standardpfad aktueller ist, und zip verwendet diesen. Mögliche Werte für v sind:

q - beenden, wenn die Pfade nicht übereinstimmen

w - Warnung ausgeben, mit dem Standardpfad fortfahren

i - ignorieren, mit dem Standardpfad fortfahren

n - kein Unicode, keine Unicode-Pfade verwenden

Die Standardeinstellung ist, zu warnen und fortzufahren.

Zeichen, die im aktuellen Zeichensatz ungültig sind, werden als \#Uxxxx und #Lxxxxxx maskiert, wobei x ein ASCII-Zeichen für eine hexadezimale Ziffer ist. Das erste wird verwendet, wenn eine 16-Bit-Zeichennummer ausreicht, um das Unicode-Zeichen darzustellen, und das zweite, wenn das Zeichen mehr als 16 Bit benötigt, um seinen Unicode-Zeichencode darzustellen. Wenn -UN auf

e - escape

gesetzt wird, wie in

zip archive -sU -UN=e

dadurch wird zip dazu gezwungen, alle Zeichen, die keine druckbaren 7-Bit-ASCII-Zeichen sind, zu maskieren.

Normalerweise speichert zip UTF-8 direkt im Standardpfad auf Systemen, auf denen UTF-8 der aktuelle Zeichensatz ist, und speichert UTF-8 andernfalls in den neuen zusätzlichen Feldern. Die Option


    u - UTF-8

    wie in

    zip-Archiv-Verzeichnis -r -UN=UTF8

    erzwingt, dass ZIP UTF-8 nativ im Archiv speichert. Beachten Sie, dass das direkte Speichern von UTF-8
    die Standardeinstellung auf Unix-Systemen ist, die dies unterstützen. Diese Option könnte auf Windows-Systemen nützlich sein, wo der Escape-Pfad zu lang ist, um ein gültiger Pfad zu sein, und die

UTF-8-Version des Pfads kleiner ist, aber natives UTF-8 ist nicht abwärtskompatibel auf Windows-Systemen.

    -v
    --verbose

Ausführlicher Modus oder Ausgabe von diagnostischen Versionsinformationen.

Normalerweise aktiviert diese Option, wenn sie auf reale Operationen angewendet wird, die Anzeige eines Fortschritts- indikators während der Komprimierung (siehe -dd für weitere Informationen über Punkte) und fordert ausführliche diagnostische Informationen über Besonderheiten der ZIP-Dateistruktur an.

Wenn -v jedoch das einzige Kommandozeilenargument ist, wird stattdessen ein diagnostischer Bildschirm ausgegeben. Dies sollte nun auch dann funktionieren, wenn stdout in eine Datei umgeleitet wird, wodurch eine einfache Speicherung der Informationen zur Weiterleitung an Info-ZIP in Fehlerberichten ermöglicht wird. Der Versionsbildschirm bietet den Hilfebildschirm-Header mit Programmname, Version und Erscheinungsdatum, einige Hinweise auf die Info-ZIP-Start- und -Verteilungsseiten und zeigt Informationen über die Zielumgebung an (Compiler-Typ und -Version, Betriebssystemversion, Kompilierungsdatum und die optionalen Funktionen, die zum Erstellen der ZIP-Datei verwendet wurden).

    -V
    --VMS-portable
    [VMS] Speichert VMS-Dateiattribute. (Dateien werden am EOF abgeschnitten.) Wenn ein -V-Archiv auf einem Nicht-VMS-System entpackt wird, sollten einige Dateitypen (insbesondere Stream_LF-Textdateien

und reine Binärdateien wie Fixed-512) intakt extrahiert werden. Indizierte Dateien und Dateitypen mit eingebetteten Datensatzgrößen (insbesondere Variablenlängen-Datensatztypen) werden anderswo wahrscheinlich als beschädigt angezeigt.

    -VV
    --VMS-specific
    [VMS] Speichert VMS-Dateiattribute und alle zugeordneten Blöcke in einer Datei, einschließlich aller Daten
    jenseits des EOF. Nützlich, um schlecht formatierte Dateien zwischen VMS-Systemen zu verschieben. Wenn ein -VV-Archiv
    auf einem Nicht-VMS-System entpackt wird, sehen fast alle Dateien beschädigt aus.

    -w
    --VMS-versions
    [VMS] Hängt die Versionsnummer der Dateien an den Namen an, einschließlich mehrerer Versionen von
    Dateien. Standardmäßig wird nur die neueste Version einer angegebenen Datei verwendet.

    -ww
    --VMS-dot-versions
    [VMS] Hängt die Versionsnummer der Dateien an den Namen an, einschließlich mehrerer Versionen von
    Dateien, wobei das Format .nnn verwendet wird. Standardmäßig wird nur die neueste Version einer angegebenen Datei verwendet.

    -ws
    --wild-stop-dirs

Wildcards passen nur auf Verzeichnisebene. Normalerweise behandelt ZIP Pfade als Zeichenketten und unter den Pfaden

    /foo/bar/dir/file1.c

    /foo/bar/file2.c

    würde ein Eingabemuster wie

    /foo/bar/*

    normalerweise beides passen, wobei * dir/file1.c und file2.c abdeckt. Beachten Sie, dass in
    dem ersten Fall eine Verzeichnisgrenze (/) in der Übereinstimmung überschritten wurde. Mit -ws werden keine Verzeichnis-
    grenzen in die Übereinstimmung einbezogen, wodurch Wildcards lokal auf eine bestimmte Verzeichnisebene beschränkt werden. Wenn -ws aktiviert ist, würde also nur der zweite Pfad übereinstimmen.

Wenn Sie -ws verwenden, verwenden Sie ** zum Abgleichen über Verzeichnisgrenzen hinweg, wie es * normalerweise tut.

-x Dateien
--exclude Dateien

Schließt die angegebenen Dateien explizit aus, z. B.:

zip -r foo foo -x \*.o

Dies enthält den Inhalt von foo in foo.zip, schließt aber alle Dateien aus, die auf .o enden. Der Backslash verhindert die Shell-Dateinamenersetzung, sodass die Namensabgleichung von zip auf allen Verzeichnisebenen durchgeführt wird.

Auch möglich:

zip -r foo foo -_

Dies enthält den Inhalt von foo in foo.zip, schließt aber alle Dateien aus, die den Mustern in der Datei exclude.lst entsprechen.

Die langen Optionsformen der oben genannten sind

zip -r foo foo --exclude \*.o

und

zip -r foo foo --exclude @exclude.lst

Mehrere Muster können angegeben werden, z. B.:

zip -r foo foo -x \*.o \*.c

Wenn zwischen -x und dem Muster kein Leerzeichen vorhanden ist, wird nur ein Wert angenommen (keine Liste):

zip -r foo foo -x\*.o

Weitere Informationen zur Ein- und Ausschließung finden Sie unter -i.

-X
--no-extra

Speichern Sie keine zusätzlichen Dateiattribute (Erweiterte Attribute unter OS/2, uid/gid und Dateizeiten unter Unix). Das Zip-Format verwendet zusätzliche Felder, um zusätzliche Informationen für jeden Eintrag einzuschließen. Einige zusätzliche Felder sind spezifisch für bestimmte Systeme, während andere für alle Systeme gelten. Normalerweise liest zip beim Lesen von Einträgen aus einem vorhandenen Archiv die ihm bekannten zusätzlichen Felder, entfernt den Rest und fügt die für dieses System geltenden zusätzlichen Felder hinzu. Mit -X entfernt zip alle alten Felder und enthält nur die Unicode- und Zip64-Zusatzfelder (derzeit können diese beiden Zusatzfelder nicht deaktiviert werden).

Durch die Negation dieser Option, -X-, werden alle Standard-Zusatzfelder einbezogen, aber auch alle nicht erkannten Zusatzfelder werden kopiert.

-y
--symlinks

Für UNIX und VMS (V8.3 und höher) werden symbolische Links als solche im Zip-Archiv gespeichert, anstatt die von dem Link referenzierte Datei zu komprimieren und zu speichern. Dies kann vermeiden, dass beim Durchlaufen der Verzeichnisstruktur und beim direkten und über Links auf Dateien zugreifen, mehrere Kopien von Dateien im Archiv enthalten sind.

-z
--archive-comment

Fordert einen mehrzeiligen Kommentar für das gesamte Zip-Archiv an. Der Kommentar wird durch eine Zeile beendet, die nur einen Punkt enthält, oder durch eine Dateiende-Bedingung (^D unter Unix, ^Z unter MSDOS, OS/2 und VMS). Der Kommentar kann aus einer Datei übernommen werden:

zip -z foo < foowhat

-Z cm
--compression-method cm

Legt die Standard-Komprimierungsmethode fest. Derzeit unterstützt zip die wichtigsten Methoden store und deflate. Die Komprimierungsmethode kann auf Folgendes gesetzt werden:

store - Das Festlegen der Komprimierungsmethode auf „store“ erzwingt, dass zip Einträge ohne Komprimierung speichert. Dies ist im Allgemeinen schneller als das Komprimieren von Einträgen, führt aber nicht zu einer Platzersparnis. Dies entspricht der Verwendung von -0 (Komprimierungsstufe null).

deflate - Dies ist die Standardmethode für zip. Wenn zip feststellt, dass das Speichern besser ist als die Deflation, wird der Eintrag stattdessen gespeichert.

bzip2 - Wenn die Unterstützung für bzip2 kompiliert ist, steht diese Komprimierungsmethode ebenfalls zur Verfügung. Nur einige moderne Unzip-Programme unterstützen derzeit die Komprimierungsmethode bzip2, testen Sie daher das Unzip-Programm, das Sie verwenden werden, bevor Sie sich auf Archive verlassen, die diese Methode verwenden (Komprimierungsmethode 12).

Zum Beispiel, um bar.c zum Archiv foo mit bzip2-Komprimierung hinzuzufügen:

zip -Z bzip2 foo bar.c

Die Komprimierungsmethode kann abgekürzt werden:

zip -Zb foo bar.c

-#
(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
Regulieren Sie die Geschwindigkeit der Komprimierung mit der angegebenen Ziffer \#, wobei -0 keine Komprimierung (alle Dateien speichern) bedeutet, -1 die schnellste Komprimierungsgeschwindigkeit (weniger Komprimierung)
und -9 die langsamste Komprimierungsgeschwindigkeit (optimale Komprimierung, ignoriert die Suffixliste). Die Standardkomprimierungsstufe ist -6.

Obwohl dies noch in Arbeit ist, ist die Absicht, dass diese Einstellung die Komprimierungsgeschwindigkeit für alle Komprimierungsmethoden steuert. Derzeit wird dies nur für die Deflation-Methode gesteuert.

-!
--use-privileges
[WIN32] Verwenden Sie Berechtigungen (falls vorhanden), um alle Aspekte der WinNT-Sicherheit zu erhalten.

-@
--names-stdin
Lesen Sie die Liste der Eingabedateien von der Standardeingabe. Nur ein Dateiname pro Zeile.

-$
--volume-label
[MSDOS, OS/2, WIN32] Fügen Sie die Volumebezeichnung des Laufwerks ein, das die erste zu komprimierende Datei enthält. Wenn Sie nur die Volumebezeichnung einfügen oder ein bestimmtes Laufwerk erzwingen möchten, verwenden Sie den Laufwerksnamen als ersten Dateinamen, z. B.:

zip -$ foo a: c:bar

BEISPIELE

Das einfachste Beispiel:

zip stuff *

erstellt das Archiv stuff.zip (vorausgesetzt, es existiert nicht) und fügt alle Dateien im aktuellen Verzeichnis in komprimierter Form hinzu (das .zip-Suffix wird automatisch hinzugefügt, es sei denn, der Archivname enthält bereits einen Punkt; dies ermöglicht die explizite Angabe anderer Suffixe).

Aufgrund der Funktionsweise der Shell unter Unix werden Dateien, die mit "." beginnen, nicht eingeschlossen; um diese ebenfalls einzuschließen:

zip stuff .* *

Auch dies schließt keine Unterverzeichnisse des aktuellen Verzeichnisses ein.

Um ein ganzes Verzeichnis zu zippen, verwenden Sie den Befehl:

zip -r foo foo

Dadurch wird das Archiv foo.zip erstellt, das alle Dateien und Verzeichnisse im Verzeichnis foo enthält, das sich im aktuellen Verzeichnis befindet.

Möglicherweise möchten Sie ein Zip-Archiv erstellen, das die Dateien in foo enthält, ohne den Verzeichnisnamen foo aufzuzeichnen. Sie können die Option -j verwenden, um die Pfade wegzulassen, z. B.:

zip -j foo foo/*

Wenn Sie wenig Speicherplatz haben, haben Sie möglicherweise nicht genügend Platz, um sowohl das ursprüngliche Verzeichnis als auch das entsprechende komprimierte Zip-Archiv zu speichern. In diesem Fall können Sie das Archiv schrittweise mit der Option -m erstellen. Wenn foo die Unterverzeichnisse tom, dick und harry enthält, können Sie:

zip -rm foo foo/tom
zip -rm foo foo/dick
zip -rm foo foo/harry

wobei der erste Befehl foo.zip erstellt und die nächsten beiden es erweitern. Nach Abschluss jedes zip-Befehls wird das zuletzt erstellte Archiv gelöscht, um Platz für den nächsten zip-Befehl zu schaffen.

Verwenden Sie -s, um die Größe für eine aufgeteilte Archivdatei festzulegen. Die Größe wird als Zahl angegeben, gefolgt optional von einem von k (kB), m (MB), g (GB) oder t (TB). Der Befehl


zip -s 2g -r split.zip foo

erstellt ein aufgeteiltes Archiv des Verzeichnisses "foo" mit aufgeteilten Dateien, die jeweils nicht größer als 2 GB sind. Wenn "foo" 5 GB an Inhalten enthält und die Inhalte ohne Komprimierung im aufgeteilten Archiv gespeichert werden (um dieses Beispiel zu vereinfachen), würden drei aufgeteilte Dateien erstellt: "split.z01" mit 2 GB, "split.z02" mit 2 GB und "split.zip" mit etwas mehr als 1 GB.

Die Option -sp kann verwendet werden, um zip zwischen den aufgeteilten Dateien anzuhalten, um beispielsweise das Wechseln von Wechselmedien zu ermöglichen, aber lesen Sie die Beschreibungen und Warnhinweise für sowohl -s als auch -sp.

Obwohl zip aufgeteilte Archive nicht aktualisiert, bietet zip die neue Option -O (--output-file), um aufgeteilte Archive zu aktualisieren und in einem neuen Archiv zu speichern. Zum Beispiel:

zip inarchive.zip foo.c bar.c --out outarchive.zip

liest das Archiv "inarchive.zip", auch wenn es aufgeteilt ist, fügt die Dateien "foo.c" und "bar.c" hinzu und schreibt das resultierende Archiv in "outarchive.zip". Wenn "inarchive.zip" aufgeteilt ist, verwendet "outarchive.zip" standardmäßig die gleiche Aufteilungsgröße. Beachten Sie, dass "outarchive.zip" und alle aufgeteilten Dateien, die damit erstellt werden, immer ohne Warnung überschrieben werden. Dies kann sich in Zukunft ändern.

MUSTERABGLEICHUNG

Dieser Abschnitt gilt nur für Unix. Informationen zur MSDOS- und VMS-Implementierung folgen später. Die speziellen Wildcard-Zeichen * und [] gelten jedoch mindestens auch für MSDOS.

Die Unix-Shells (sh, csh, bash und andere) führen normalerweise eine Dateinamenerweiterung (auch "Globbing" genannt) für Befehlsargumente durch. Im Allgemeinen sind die speziellen Zeichen:

?      entspricht einem beliebigen einzelnen Zeichen

*      entspricht einer beliebigen Anzahl von Zeichen (einschließlich keiner)

[]     entspricht jedem Zeichen im angegebenen Bereich innerhalb der Klammern (Beispiel: [a-f], [0-9]).

Diese Form der Wildcard-Abgleichung ermöglicht es einem Benutzer, eine Liste von Zeichen zwischen eckigen Klammern anzugeben, und wenn eines der Zeichen mit dem Ausdruck übereinstimmt, wird die Übereinstimmung gefunden. Zum Beispiel:

zip archive "*.[hc]"

würde alle Dateien im aktuellen Verzeichnis archivieren, die auf .h oder .c enden.

Bereiche von Zeichen werden unterstützt:

zip archive "[a-f]*"

würde alle Dateien, die mit "a" bis "f" beginnen, zum Archiv hinzufügen.

Negation wird ebenfalls unterstützt, wobei jedes Zeichen an dieser Position, das nicht in der Liste enthalten ist, übereinstimmt. Negation wird unterstützt, indem ! oder ^ am Anfang der Liste hinzugefügt wird:

zip archive "*.[!o]"

entspricht Dateien, die nicht auf ".o" enden.

Unter WIN32 muss die []-Abgleichung mit der Option -RE aktiviert werden, um die Verwirrung zu vermeiden, die Namen mit [ oder ] verursacht haben.

Wenn diese Zeichen gefunden werden (ohne dass sie durch einen Backslash oder Anführungszeichen maskiert werden), sucht die Shell nach Dateien im aktuellen Pfad, die dem Muster entsprechen, und ersetzt das Argument durch eine Liste der übereinstimmenden Namen.

Das Programm zip kann die gleiche Abgleichung auf Namen anwenden, die sich im zu modifizierenden zip-Archiv befinden, oder, im Fall der Optionen -x (ausschließen) oder -i (einschließen), auf der Liste der zu bearbeitenden Dateien. Dazu werden Backslashes oder Anführungszeichen verwendet, um der Shell mitzuteilen, dass sie keine Namenserweiterung durchführen soll. Im Allgemeinen sucht zip, wenn es auf einen Namen in der Liste der zu bearbeitenden Dateien stößt, zuerst nach dem Namen im Dateisystem. Wenn es ihn findet, fügt es ihn der Liste der zu bearbeitenden Dateien hinzu. Wenn es ihn nicht findet, sucht es nach dem Namen im zu modifizierenden zip-Archiv (falls vorhanden) und verwendet dabei die oben beschriebenen Zeichen für die Musterabgleichung. Für jede Übereinstimmung wird dieser Name der Liste der zu verarbeitenden Dateien hinzugefügt, es sei denn, dieser Name stimmt mit einem Namen überein, der mit der Option -x angegeben wurde, oder er stimmt nicht mit einem Namen überein, der mit der Option -i angegeben wurde.


Die Musterübereinstimmung umfasst den Pfad, sodass Muster wie \\*.o Namen abgleichen, die auf ".o" enden, unabhängig vom Pfadpräfix. Beachten Sie, dass jedem Sonderzeichen (d. h. ?*[]) ein umgekehrter Schrägstrich vorangestellt werden muss, oder das gesamte Argument muss in Anführungszeichen ("") eingeschlossen werden.

Im Allgemeinen verwenden Sie umgekehrte Schrägstriche oder Anführungszeichen für Pfade, die Wildcards enthalten, damit zip die Musterübereinstimmung für Dateipfade durchführt, und immer für Pfade und Zeichenketten, die Leerzeichen oder Wildcards für -i, -x, -R, -d und -U enthalten, und überall dort, wo zip die Wildcards verarbeiten muss.

UMGEBUNG

Die folgenden Umgebungsvariablen werden gelesen und von zip wie beschrieben verwendet.

ZIPOPT

enthält Standardoptionen, die verwendet werden, wenn zip ausgeführt wird. Der Inhalt dieser Umgebungsvariablen wird der Befehlszeile direkt nach dem Befehl zip hinzugefügt.

ZIP
[Nicht unter RISC OS und VMS] siehe ZIPOPT

Zip$Options
[RISC OS] siehe ZIPOPT

Zip$Exts
[RISC OS] enthält durch einen Doppelpunkt getrennte Erweiterungen, wodurch native Dateinamen mit einer der angegebenen Erweiterungen mit vertauschter Basis und Erweiterung der ZIP-Datei hinzugefügt werden.

ZIP_OPTS
[VMS] siehe ZIPOPT

SIEHE AUCH

compress(1), shar(1), tar(1), unzip(1), gzip(1)

DIAGNOSTIK

Der Exit-Status (oder das Fehlerlevel) entspricht in etwa den von PKWARE definierten Exit-Codes und nimmt die folgenden Werte an, mit Ausnahme von VMS:

0     normal; keine Fehler oder Warnungen erkannt.

2     unerwartetes Ende der ZIP-Datei.

3     ein generischer Fehler im ZIP-Dateiformat wurde erkannt. Die Verarbeitung wurde möglicherweise trotzdem erfolgreich abgeschlossen; einige defekte ZIP-Dateien, die von anderen Archivierungsprogrammen erstellt wurden, haben einfache Workarounds.

4     zip konnte während der Programminitialisierung keinen Speicher für einen oder mehrere Puffer zuweisen.

5     ein schwerwiegender Fehler im ZIP-Dateiformat wurde erkannt. Die Verarbeitung ist wahrscheinlich sofort fehlgeschlagen.

6     Eintrag ist zu groß für die Verarbeitung (z. B. Eingabedateien, die größer als 2 GB sind, wenn nicht Zip64 verwendet wird, oder beim Lesen einer vorhandenen Archivdatei, die zu groß ist) oder Eintrag ist zu groß, um mit zipsplit aufgeteilt zu werden.

7     ungültiges Kommentarformat

8     zip -T fehlgeschlagen oder es ist nicht genügend Speicher vorhanden

9     der Benutzer hat zip vorzeitig mit Strg+C (oder ähnlich) abgebrochen

10    zip ist bei der Verwendung einer temporären Datei auf einen Fehler gestoßen

11    Fehler beim Lesen oder Suchen

12    zip hat nichts damit zu tun

13    fehlende oder leere Zip-Datei

14    Fehler beim Schreiben in eine Datei

15    Zip konnte keine Datei zum Schreiben erstellen

16    ungültige Befehlszeilenparameter

18    Zip konnte die angegebene Datei zum Lesen nicht öffnen

19    Zip wurde mit Optionen kompiliert, die auf diesem System nicht unterstützt werden

VMS interpretiert Standard-Unix- (oder PC-) Rückgabewerte als andere, beängstigendere Dinge, daher ordnet Zip diese stattdessen VMS-ähnlichen Statuscodes zu. Im Allgemeinen setzt Zip VMS Facility = 1955 (0x07A3), Code = 2 * Unix_status und einen geeigneten Severity-Wert (wie in ziperr.h angegeben). Weitere Details sind in der VMS-spezifischen Dokumentation enthalten. Siehe [.vms]NOTES.TXT und [.vms]vms_msg_gen.c.

FEHLER

Zip 3.0 ist nicht kompatibel mit PKUNZIP 1.10. Verwenden Sie Zip 1.1, um Zip-Dateien zu erstellen, die von PKUNZIP 1.10 extrahiert werden können.

Zip-Dateien, die von Zip 3.0 erstellt wurden, dürfen nicht von Zip 1.1 oder PKZIP 1.10 aktualisiert werden, wenn sie verschlüsselte Elemente enthalten oder in einer Pipeline oder auf einem nicht-seekbaren Gerät erstellt wurden. Die älteren Versionen von Zip oder PKZIP würden ein Archiv mit einem inkorrekten Format erstellen. Die älteren Versionen können den Inhalt der Zip-Datei auflisten, können sie aber trotzdem nicht extrahieren (aufgrund des neuen Komprimierungsalgorithmus). Wenn Sie keine Verschlüsselung verwenden und reguläre Festplattendateien verwenden, müssen Sie sich dieses Problem nicht zunutze machen.

Unter VMS werden nicht alle seltsamen Dateiformate korrekt behandelt. Nur Stream-LF-Format-Zip-Dateien werden voraussichtlich mit Zip funktionieren. Andere können mit dem BILF-Programm von Rahul Dhesi konvertiert werden. Diese Version von Zip übernimmt einige der Konvertierungen intern. Wenn Sie Kermit verwenden, um Zip-Dateien von VMS nach MSDOS zu übertragen, geben Sie auf VMS „set file type block“ ein. Wenn Sie von MSDOS nach VMS übertragen, geben Sie auf VMS „set file type fixed“ ein. In beiden Fällen geben Sie auf MSDOS „set file type binary“ ein.

Unter einigen älteren VMS-Versionen kann Zip bei Dateispezifikationen, die die DECnet-Syntax verwenden, hängen bleiben. foo::*.*.

Unter OS/2 kann Zip bestimmte Namen nicht zuordnen, z. B. solche, die ein Ausrufezeichen oder ein Hash-Zeichen enthalten. Dies ist ein Fehler in OS/2 selbst: Die 32-Bit-Versionen von DosFindFirst/Next finden solche Namen nicht. Andere Programme wie GNU tar sind ebenfalls von diesem Fehler betroffen.

Unter OS/2 ist die von DIR angezeigte Menge der erweiterten Attribute (aus Gründen der Kompatibilität) die Menge, die von der 16-Bit-Version von DosQueryPathInfo() zurückgegeben wird. Andernfalls würden OS/2 1.3 und 2.0 beim Auflisten einer Datei unterschiedliche EA-Größen melden. Das von zip verwendete Format ist jedoch das 32-Bit-Format, um die Portabilität zu gewährleisten, selbst für die 16-Bit-MS-C-kompilierte Version, die unter OS/2 1.3 ausgeführt wird, sodass auch diese die 32-Bit-Modus-Größe anzeigt.

AUTOREN

Copyright (C) 1997-2008 Info-ZIP.

Derzeit unter der Info-ZIP-Lizenz verteilt.


Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly, Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush und Paul Kienitz.

Originales Copyright:

Die Erlaubnis wird jeder Einzelperson oder Institution gewährt, diese Software zu verwenden, zu kopieren oder weiterzuverteilen, solange alle ursprünglichen Dateien enthalten sind, sie nicht zum Profit verkauft wird und diese Copyright-Hinweis beibehalten wird.

WIE ALLE ANDEREN KOSTENLOSEN SOFTWARE, WERDEN ZIP UND SEINE ZUGEHÖRIGEN PROGRAMME „WIE BESEHEN“ BEREITGESTELLT UND KOMMEN OHNE JEGLICHE GARANTIE, AUSDRÜCKLICH ODER STILLSCHWEIGEND, DAZU. IN KEINEM FALL HAFTEN DIE URHEBERRECHTSINHABER FÜR SCHÄDEN, DIE AUS DER NUTZUNG DIESER SOFTWARE ENTSTEHEN.

Bitte senden Sie Fehlerberichte und Kommentare über die Webseite unter: www.info-zip.org. Für Fehlerberichte geben Sie bitte die Version von zip an (siehe zip -h), die beim Kompilieren verwendeten Build-Optionen (siehe zip -v), die verwendete Maschine und das Betriebssystem sowie so viele zusätzliche Informationen wie möglich.

DANKSAGUNGEN

Dank an R. P. Byrne für sein Shrink.Pas-Programm, das dieses Projekt inspiriert hat und von dem der Shrink-Algorithmus „ausgeliehen“ wurde; an Phil Katz, weil er das Zip-Dateiformat, das Komprimierungsformat und die Dateierweiterung .ZIP in die Öffentlichkeit gestellt und kleinere Änderungen am Dateiformat akzeptiert hat; an Steve Burg für Klärungen zum Deflate-Format; an Haruhiko Okumura und Leonid Broukhis, die einige nützliche Ideen für den Komprimierungsalgorithmus geliefert haben; an Keith Petersen, Rich Wales, Hunter Goatley und Mark Adler, die eine Mailingliste und einen FTP-Server für die Info-ZIP-Gruppe bereitgestellt haben; und vor allem an die Info-ZIP-Gruppe selbst (aufgeführt in der Datei infozip.who), ohne deren unermüdliche Test- und Fehlerbehebungsbemühungen ein portables Zip nicht möglich gewesen wäre. Schließlich sollten wir dem ersten Info-ZIP-Moderator, David Kirschbaum, danken (oder ihm die Schuld geben), dass er uns in dieses Durcheinander gebracht hat. Die Handbuchseite wurde für Unix von R. P. C. Rodgers überarbeitet und von E. Gordon für zip 3.0 aktualisiert.