unzip - listet, testet und entpackt komprimierte Dateien in einem ZIP-Archiv
SYNOPSIS
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...]
[-d exdir]
DESCRIPTION
unzip listet, testet oder entpackt Dateien aus einem ZIP-Archiv, das üblicherweise auf MS-DOS-Systemen verwendet wird.
Das Standardverhalten (ohne Optionen) besteht darin, alle Dateien aus dem angegebenen ZIP-Archiv in das aktuelle Verzeichnis (und die Unterverzeichnisse darunter) zu extrahieren. Ein zugehöriges Programm, zip(1), erstellt ZIP-Archive; beide Programme sind mit Archiven kompatibel, die von PKWARE's PKZIP und PKUNZIP für MS-DOS erstellt wurden, aber in vielen Fällen unterscheiden sich die Programmoptionen oder das Standardverhalten.
ARGUMENTE
file[.zip]
Pfad des ZIP-Archivs (der Archive). Wenn die Dateispezifikation ein Wildcard ist, wird jede übereinstimmende Datei in einer vom Betriebssystem (oder Dateisystem) festgelegten Reihenfolge verarbeitet. Nur der Dateiname kann ein Wildcard sein; der Pfad selbst nicht. Wildcard-Ausdrücke ähneln denen, die in gängigen Unix-Shells (sh, ksh, csh) verwendet werden, und können Folgendes enthalten:
* entspricht einer Sequenz von 0 oder mehr Zeichen
? entspricht genau 1 Zeichen
[...] entspricht jedem einzelnen Zeichen, das sich innerhalb der Klammern befindet; Bereiche werden durch ein
anfangendes Zeichen, einen Bindestrich und ein endendes Zeichen angegeben. Wenn ein Ausrufezeichen oder
ein Caret (`!' oder `^') auf die linke Klammer folgt, wird die Zeichenfolge innerhalb
der Klammern ergänzt (d. h. alles außer den Zeichen innerhalb der
Klammern wird als Übereinstimmung betrachtet). Um eine wörtliche linke Klammer anzugeben, muss die dreiZeichen lange Sequenz ``[[]'' verwendet werden.
(Achten Sie darauf, alle Zeichen, die andernfalls vom Betriebssystem interpretiert oder geändert werden könnten, insbesondere unter Unix und VMS, zu maskieren.) Wenn keine Übereinstimmungen gefunden werden, wird davon ausgegangen, dass die Spezifikation ein wörtlicher Dateiname ist; und wenn dies auch fehlschlägt, wird das Suffix .zip angehängt. Selbstextrahierende ZIP-Dateien werden unterstützt, wie bei jedem anderen ZIP-Archiv;
geben Sie einfach das Suffix .exe (falls vorhanden) explizit an.
[file(s)]
Eine optionale Liste der Archivmitglieder, die verarbeitet werden sollen, getrennt durch Leerzeichen. (VMS-Versionen, die mit VMSCLI definiert kompiliert wurden, müssen Dateien stattdessen durch Kommas trennen. Siehe -v in OPTIONEN unten.) Reguläre Ausdrücke (Wildcards) können verwendet werden, um mehrere Mitglieder abzugleichen; siehe oben. Achten Sie darauf, Ausdrücke zu maskieren, die andernfalls vom Betriebssystem erweitert oder geändert würden.
[-x xfile(s)]
Eine optionale Liste der Archivmitglieder, die von der Verarbeitung ausgeschlossen werden sollen. Da Wildcard-Zeichen normalerweise auf Verzeichnistrennzeichen (`/') übereinstimmen (mit Ausnahme der Option -W), kann diese Option verwendet werden, um alle Dateien in Unterverzeichnissen auszuschließen. Zum Beispiel würde ``unzip foo .[ch] -x /*'' alle C-Quelldateien im Hauptverzeichnis extrahieren, aber keine in irgendeinem Unterverzeichnis. Ohne die Option -x würden alle C-Quelldateien in allen Verzeichnissen innerhalb der ZIP-Datei extrahiert.
[-d exdir]
Eine optionale Verzeichnis, in das die Dateien extrahiert werden sollen. Standardmäßig werden alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis neu erstellt; die Option -d ermöglicht die Extraktion in einem beliebigen Verzeichnis (vorausgesetzt, man hat die Berechtigung, in das Verzeichnis zu schreiben). Diese Option muss nicht am Ende der Befehlszeile stehen; sie kann auch nach der Zip-Datei-Spezifikation, unmittelbar nach der Zip-Datei-Spezifikation oder zwischen den Dateien und der Option -x verwendet werden. Die Option und das Verzeichnis können ohne Leerzeichen zwischen ihnen verkettet werden, beachten Sie jedoch, dass dies dazu führen kann, dass die normale Shell-Funktion unterdrückt wird. Insbesondere wird -d ~ (Tilde) von Unix C-Shells in den Namen des Home-Verzeichnisses des Benutzers erweitert, während -d~ als ein literales Unterverzeichnis ~ des aktuellen Verzeichnisses behandelt wird.
OPTIONEN
Beachten Sie, dass die Hilfemeldung von unzip, um veraltete Hardware zu unterstützen, auf 22 oder 23 Zeilen beschränkt ist und daher nur als Erinnerung an die grundlegende unzip-Syntax und nicht als vollständige Liste aller möglichen Flags betrachtet werden sollte. Die vollständige Liste folgt:
-Z zipinfo(1)-Modus. Wenn die erste Option in der Befehlszeile -Z ist, werden die verbleibenden Optionen als zipinfo(1)-Optionen behandelt. Sehen Sie sich die entsprechende Handbuchseite für eine Beschreibung dieser Optionen an.
-A [OS/2, Unix DLL] Gibt eine erweiterte Hilfe für die Programmierschnittstelle (API) der DLL aus.
-c Dateien nach stdout/Bildschirm extrahieren („CRT“). Diese Option ähnelt der Option -p, mit dem Unterschied, dass der Name jeder Datei beim Extrahieren ausgegeben wird, die Option -a zulässig ist und bei Bedarf automatisch eine ASCII-EBCDIC-Konvertierung durchgeführt wird. Diese Option wird nicht in der unzip-Hilfemeldung aufgeführt.
-f Vorhandene Dateien aktualisieren, d. h. nur die Dateien extrahieren, die bereits auf der Festplatte vorhanden sind und neuer sind als die Versionen auf der Festplatte. Standardmäßig fragt unzip, bevor es Dateien überschreibt, aber die Option -o kann verwendet werden, um die Abfragen zu unterdrücken. Beachten Sie, dass unter vielen Betriebssystemen die Umgebungsvariable TZ korrekt gesetzt sein muss, damit -f und -u ordnungsgemäß funktionieren (unter Unix wird die Variable normalerweise automatisch gesetzt). Die Gründe dafür sind etwas subtil, haben aber mit den Unterschieden zwischen DOS-Datei-Zeitstempeln (immer lokale Zeit) und Unix-Zeitstempeln (immer in GMT/UTC) und der Notwendigkeit, die beiden zu vergleichen, zu tun. Ein typischer TZ-Wert ist „PST8PDT“ (US-Pazifikzeit mit automatischer Anpassung für die Sommerzeit).
-l listet Archivdateien auf (kurzes Format). Die Namen, die unkomprimierten Dateigrößen und die Änderungsdaten und -zeiten der angegebenen Dateien werden zusammen mit den Gesamtsummen für alle angegebenen Dateien ausgegeben. Wenn UnZip mit OS2_EAS kompiliert wurde, listet die Option -l auch Spalten für die Größen der gespeicherten OS/2-erweiterten Attribute (EAs) und OS/2-Zugriffskontrolllisten (ACLs) auf.
Darüber hinaus werden der Kommentar der Zip-Datei und die einzelnen Dateikommentare (falls vorhanden) angezeigt. Wenn eine Datei aus einem Dateisystem mit nur Großbuchstaben (z. B. das alte MS-DOS-FAT-Dateisystem) archiviert wurde und die Option -L angegeben wurde, wird der Dateiname in Kleinbuchstaben umgewandelt und mit einem Caret (^) versehen.
-p Dateien in die Pipe (Stdout) extrahieren. Nur die Dateidaten werden an Stdout gesendet, und die Dateien werden immer im Binärformat extrahiert, so wie sie gespeichert sind (keine Konvertierungen).
-t Archivdateien testen. Diese Option extrahiert jede angegebene Datei im Speicher und vergleicht die CRC (zyklische Redundanzprüfung, eine erweiterte Prüfsumme) der entpackten Datei mit dem ursprünglich in der Datei gespeicherten CRC-Wert.
-T [die meisten Betriebssysteme] Legt den Zeitstempel der Archive auf den des neuesten Elements in jedem Archiv fest. Dies entspricht der Option -go von zip, mit dem Unterschied, dass sie bei Wildcard-Zip-Dateien verwendet werden kann (z. B. "unzip -T \*.zip") und viel schneller ist.
-u Vorhandene Dateien aktualisieren und bei Bedarf neue Dateien erstellen. Diese Option führt die gleiche Funktion wie die Option -f aus, indem sie Dateien extrahiert (mit Abfrage), die neuer sind als die Dateien mit demselben Namen auf der Festplatte, und zusätzlich die Dateien extrahiert, die noch nicht auf der Festplatte vorhanden sind. Informationen zur korrekten Einstellung der Zeitzone finden Sie unter -f oben.
-v Archivdateien im ausführlichen Format auflisten oder diagnostische Versionsinformationen anzeigen. Diese Option hat sich weiterentwickelt und verhält sich jetzt sowohl als Option als auch als Modifikator. Als Option hat sie zwei Zwecke: Wenn eine Zip-Datei ohne andere Optionen angegeben wird, listet -v die Archivdateien ausführlich auf und fügt den grundlegenden Informationen von -l die Komprimierungsmethode, die komprimierte Größe, das Komprimierungsverhältnis und die 32-Bit-CRC hinzu. Im Gegensatz zu den meisten konkurrierenden Dienstprogrammen entfernt unzip die 12 zusätzlichen Header-Bytes verschlüsselter Einträge aus den Zahlen der komprimierten Größe. Daher sind die Zahlen für die komprimierte Größe und das Komprimierungsverhältnis unabhängig vom Verschlüsselungsstatus des Eintrags und zeigen die korrekte Komprimierungsleistung. (Die vollständige Größe des verschlüsselten, komprimierten Datenstroms für Zip-Dateieinträge wird in den ausführlicheren zipinfo(1)-Berichten gemeldet, siehe die separate Dokumentation.) Wenn keine Zip-Datei angegeben ist (d. h. der vollständige Befehl ist einfach "unzip -v"), wird ein diagnostischer Bildschirm angezeigt. Zusätzlich zum normalen Header mit Datum und Version listet unzip die Home-Info-ZIP-FTP-Website und die Liste der anderen FTP- und Nicht-FTP-Sites auf, das Zielbetriebssystem, für das es kompiliert wurde, sowie (möglicherweise) die Hardware, auf der es kompiliert wurde, den verwendeten Compiler und die Version sowie das Kompilierungsdatum. Alle speziellen Kompilierungsoptionen, die die Funktionsweise des Programms beeinflussen könnten (siehe auch DECRYPTION), und alle in Umgebungsvariablen gespeicherten Optionen, die dasselbe tun könnten (siehe ENVIRONMENT OPTIONS). Als Modifikator funktioniert es in Verbindung mit anderen Optionen (z. B. -t), um ausführlichere oder Debug-Ausgaben zu erzeugen; dies ist noch nicht vollständig implementiert, wird aber in zukünftigen Versionen erfolgen.
-z Zeigt nur den Archivkommentar an.
MODIFIKATOREN
-a Konvertiert Textdateien. Normalerweise werden alle Dateien genau so extrahiert, wie sie gespeichert sind (als „binäre“ Dateien). Die Option -a bewirkt, dass Dateien, die von zip als Textdateien identifiziert werden (d. h. solche mit dem Label „t“ in zipinfo-Listen, anstelle von „b“), automatisch als solche extrahiert werden, wobei Zeilenenden, Dateiende-Zeichen und der Zeichensatz bei Bedarf konvertiert werden. (Beispielsweise verwenden Unix-Dateien Zeilenvorschübe (LFs) für das Zeilenende (EOL) und haben kein Dateiende-Zeichen (EOF); Macintosh-Systeme verwenden Wagenrückläufe (CRs) für EOLs; und die meisten PC-Betriebssysteme verwenden CR+LF für EOLs und Control-Z für EOF. Darüber hinaus verwenden IBM-Mainframes und das Michigan Terminal System EBCDIC anstelle des gebräuchlicheren ASCII-Zeichensatzes, und NT unterstützt Unicode.) Beachten Sie, dass die Identifizierung von Textdateien durch zip keineswegs perfekt ist; einige „Text“-Dateien sind tatsächlich binär und umgekehrt. Daher gibt unzip beim Verwenden der Option -a für jede extrahierte Datei „[text]“ oder „[binary]“ als visuelle Überprüfung aus. Die Option -aa erzwingt, dass alle Dateien als Text extrahiert werden, unabhängig vom angeblichen Dateityp. Unter VMS, siehe auch -S.
-b [allgemein] Behandelt alle Dateien als binär (keine Textkonvertierungen). Dies ist eine Abkürzung für ---a.
-b [Tandem] Erzwingt die Erstellung von Dateien mit dem Dateityp 180 („C“) beim Extrahieren von Zip-Einträgen, die als „Text“ gekennzeichnet sind. (Unter Tandem ist -a standardmäßig aktiviert, siehe oben).
-b [VMS] Konvertiert Binärdateien automatisch (siehe -a oben) in ein Format mit fester Länge von 512 Byte. Durch Verdoppeln der Option (-bb) werden alle Dateien in diesem Format extrahiert. Beim Extrahieren in die Standardausgabe (Option -c oder -p aktiv) wird die Standardkonvertierung von Textzeilenbegrenzungen für Binärdateien (-b) bzw. alle Dateien (-bb) deaktiviert.
-B [wenn mit UNIXBACKUP kompiliert] Speichert eine Sicherungskopie jeder überschriebenen Datei. Die Sicherungsdatei erhält den Namen der Zieldatei mit einer Tilde und optional einer eindeutigen Sequenznummer (bis zu 5 Ziffern) als Anhängsel. Die Sequenznummer wird angewendet, wenn bereits eine andere Datei mit dem ursprünglichen Namen plus Tilde vorhanden ist. Bei Verwendung zusammen mit der Option „alles überschreiben“ (-o) werden keine nummerierten Sicherungsdateien erstellt. In diesem Fall werden alle Sicherungsdateien als die ursprüngliche Datei mit einem angehängten Tilde benannt, vorhandene Sicherungsdateien werden ohne Benachrichtigung gelöscht. Diese Funktion ähnelt dem Standardverhalten von [emacs]({filename}../../emacs)(1) in vielen Umgebungen.
Beispiel: Die alte Kopie von „foo“ wird in „foo~“ umbenannt.
Warnung: Benutzer sollten sich bewusst sein, dass die Option -B nicht in allen Fällen den Verlust vorhandener Daten verhindert. Beispielsweise wird, wenn unzip im Modus „alles überschreiben“ ausgeführt wird, eine vorhandene „foo~“-Datei gelöscht, bevor unzip versucht, „foo“ in „foo~“ umzubenennen. Wenn dieser Umbenennungsversuch fehlschlägt (z. B. aufgrund von Dateisperren, unzureichenden Berechtigungen oder ...), wird die Extraktion von „foo~“ abgebrochen, aber die alte Sicherungsdatei ist bereits verloren. Ein ähnliches Szenario tritt auf, wenn der Bereich für nummerierte Sicherungsdateien erschöpft ist (99999 oder 65535 für 16-Bit-Systeme). In diesem Fall wird die Sicherungsdatei mit der höchsten Sequenznummer ohne Benachrichtigung gelöscht und durch die neue Sicherungsversion ersetzt.
-C verwenden Sie eine nicht zwischen Groß- und Kleinschreibung unterscheidende Übereinstimmung für die Auswahl von Archivdateien aus der Befehlszeilenliste der Extraktionsauswahlspezifikationen. Die Philosophie von Unzip ist „Sie bekommen, wonach Sie fragen“ (dies ist auch für die Änderung mit den Optionen -L/-U verantwortlich; siehe die entsprechenden Optionen unten). Da einige Dateisysteme vollständig zwischen Groß- und Kleinschreibung unterscheiden (insbesondere die unter dem Unix-Betriebssystem) und da sowohl ZIP-Archive als auch Unzip selbst auf verschiedenen Plattformen portierbar sind, ist das Standardverhalten von Unzip, dass sowohl Wildcard- als auch Literaldateinamen zwischen Groß- und Kleinschreibung unterscheiden. Das heißt, wenn Sie „makefile“ in der Befehlszeile angeben, wird nur „makefile“ im Archiv gefunden, nicht „Makefile“ oder „MAKEFILE“ (und dies gilt auch für Wildcardspezifikationen). Da dies nicht dem Verhalten vieler anderer Betriebssysteme/Dateisysteme entspricht (z. B. OS/2 HPFS, das die Groß-/Kleinschreibung beibehält, aber nicht darauf achtet), kann die Option -C verwendet werden, um alle Dateinamen so zu verarbeiten, dass sie nicht zwischen Groß- und Kleinschreibung unterscheiden. Im obigen Beispiel würden dann alle drei Dateien mit „makefile“ (oder „make*“ oder ähnlich) übereinstimmen. Die Option -C wirkt sich auf Dateispezifikationen sowohl in der normalen Dateiliste als auch in der Liste der ausgeschlossenen Dateien (xlist) aus.
Bitte beachten Sie, dass die Option -C weder die Suche nach der ZIP-Datei(en) noch die Übereinstimmung der Archivdateien mit vorhandenen Dateien im Extraktionspfad beeinflusst. Auf einem Dateisystem, das zwischen Groß- und Kleinschreibung unterscheidet, versucht Unzip niemals, eine Datei „FOO“ zu überschreiben, wenn eine Datei „foo“ extrahiert wird!
-D überspringen Sie die Wiederherstellung von Zeitstempeln für extrahierte Elemente. Normalerweise versucht Unzip, alle Metainformationen für extrahierte Elemente wiederherzustellen, die in der ZIP-Datei enthalten sind (und keine Berechtigungen erfordern oder ein Sicherheitsrisiko darstellen). Durch die Angabe von -D wird Unzip angewiesen, die Wiederherstellung von Zeitstempeln für Verzeichnisse zu unterdrücken, die explizit aus ZIP-Archivdateien erstellt werden. Diese Option gilt nur für Ports, die das Festlegen von Zeitstempeln für Verzeichnisse unterstützen (derzeit ATheOS, BeOS, MacOS, OS/2, Unix, VMS, Win32; für andere Unzip-Ports hat -D keine Auswirkung). Die doppelte Option -DD erzwingt die Unterdrückung der Zeitstempelwiederherstellung für alle extrahierten Einträge (Dateien und Verzeichnisse). Diese Option führt dazu, dass die Zeitstempel für alle extrahierten Einträge auf die aktuelle Zeit gesetzt werden.
Unter VMS ist die Standardeinstellung für diese Option -D, um die Konsistenz mit dem Verhalten von BACKUP zu gewährleisten: Dateizeitstempel werden wiederhergestellt, die Zeitstempel der extrahierten Verzeichnisse bleiben auf die aktuelle Zeit eingestellt. Um die Wiederherstellung der Zeitstempel von Verzeichnissen zu aktivieren, sollte die negierte Option --D angegeben werden. Unter VMS deaktiviert die Option -D die Zeitstempelwiederherstellung für alle extrahierten ZIP-Archivdateien. (Hier kombiniert eine einzelne Option -D in der Befehlszeile mit dem Standardwert -D, um auf anderen Systemen die gleiche Wirkung wie ein explizites -DD zu erzielen).
-E [MacOS nur] Zeigt den Inhalt des MacOS-Zusatzfeldes während des Wiederherstellungsvorgangs an.
-F [Acorn nur] Unterdrückt das Entfernen der NFS-Dateityperweiterung aus den gespeicherten Dateinamen.
-F [Nicht-Acorn-Systeme, die lange Dateinamen mit eingebetteten Kommas unterstützen, und nur, wenn mit ACORN_FTYPE_NFS kompiliert] Übersetzt Dateitypinformationen aus den ACORN RISC
OS-Zusatzfeldblöcken in eine NFS-Dateityperweiterung und hängt diese an die Namen der extrahierten Dateien an. (Wenn der gespeicherte Dateiname bereits eine angehängte NFS-Dateityperweiterung zu haben scheint, wird diese durch die Informationen aus dem Zusatzfeld ersetzt.)
-i [MacOS nur] Ignoriert Dateinamen, die in den MacOS-Zusatzfeldern gespeichert sind. Stattdessen wird der kompatibelste Dateiname verwendet, der im generischen Teil des Eintragsheaders
gespeichert ist.
-j Verwirft Pfade. Die Verzeichnisstruktur des Archivs wird nicht wiederhergestellt; alle Dateien werden im Extraktionsverzeichnis (standardmäßig das aktuelle) abgelegt.
-J [BeOS nur] Verwirft Dateiatribute. Die BeOS-Dateiatribute werden nicht wiederhergestellt, nur die Dateidaten.
-J [MacOS nur] Ignoriert MacOS-Zusatzfelder. Alle Macintosh-spezifischen Informationen werden übersprungen. Daten-Fork und Ressourcen-Fork werden als separate Dateien wiederhergestellt.
-K [AtheOS, BeOS, Unix nur] Behält SUID/SGID/Tacky-Dateiatribute bei. Ohne dieses Flag werden diese Attributbits aus Sicherheitsgründen gelöscht.
-L Konvertiert jeden Dateinamen, der von einem Betriebssystem oder Dateisystem, das ausschließlich Großbuchstaben verwendet, stammt, in Kleinbuchstaben. (Dies war das Standardverhalten von unzip
in Versionen vor 5.11; das neue Standardverhalten ist identisch mit dem alten Verhalten mit der Option -U, die jetzt veraltet ist und in einer zukünftigen Version entfernt wird.) Je nach Archivierungsprogramm können Dateien, die unter Dateisystemen mit nur einem Zeichensatz (VMS, altes MS-DOS FAT usw.) archiviert wurden, als vollständig in Großbuchstaben gespeicherte Namen haben; dies kann unschön oder unpraktisch sein, wenn sie in ein Dateisystem extrahiert werden, das die Groß-/Kleinschreibung beibehält, wie z. B. OS/2 HPFS oder ein Dateisystem, das die Groß-/Kleinschreibung beachtet, wie z. B. unter Unix. Standardmäßig listet und extrahiert unzip solche Dateinamen genau so, wie sie gespeichert sind (mit Ausnahme von Kürzungen, Konvertierungen von nicht unterstützten Zeichen usw.); diese Option bewirkt, dass die Namen aller Dateien aus bestimmten Systemen in Kleinbuchstaben konvertiert werden. Die Option -LL erzwingt die Konvertierung jedes Dateinamens in Kleinbuchstaben, unabhängig vom ursprünglichen Dateisystem.
-M Leitet die gesamte Ausgabe durch einen internen Pager weiter, der dem Unix-Befehl more(1) ähnelt. Am Ende einer Bildschirmseite der Ausgabe pausiert unzip mit einer ``--More--''-Aufforderung;
die nächste Bildschirmseite kann durch Drücken der Eingabetaste (Return) oder der Leertaste angezeigt werden. unzip kann durch Drücken der Taste ``q'' und auf einigen Systemen durch Drücken der Eingabe-/Return-Taste beendet werden. Im Gegensatz zu Unix more(1) gibt es keine Vorwärts-Such- oder Bearbeitungsfunktion. Außerdem bemerkt unzip nicht, ob lange Zeilen am Rand des Bildschirms umbrechen, was effektiv dazu führt, dass zwei oder mehr Zeilen gedruckt werden und die Wahrscheinlichkeit besteht, dass ein Teil des Textes, bevor er angezeigt wird, vom oberen Rand des Bildschirms verschwindet. Auf einigen Systemen wird die Anzahl der verfügbaren Zeilen auf dem Bildschirm nicht erkannt, woraufhin unzip davon ausgeht, dass die Höhe 24 Zeilen beträgt.
-n Überschreibt vorhandene Dateien niemals. Wenn eine Datei bereits vorhanden ist, wird die Extraktion dieser Datei ohne Aufforderung übersprungen. Standardmäßig fragt unzip, bevor es eine Datei extrahiert, die bereits vorhanden ist; der Benutzer kann wählen, ob er nur die aktuelle Datei, alle Dateien, die aktuelle Datei überschreiben, die Extraktion aller vorhandenen Dateien überspringen oder die aktuelle Datei umbenennen möchte.
-N [Amiga] Extrahiert Dateikommentare als Amiga-Dateiattribute. Dateikommentare werden mit der Option -c von [zip]({filename}../../zip)(1) oder mit der Option -N der Amiga-Version von [zip]({filename}../../zip)(1) erstellt, wodurch Dateiattribute als Kommentare gespeichert werden.
-o Überschreibt vorhandene Dateien ohne Aufforderung. Dies ist eine gefährliche Option, verwenden Sie sie daher mit Vorsicht. (Sie wird jedoch oft zusammen mit -f verwendet und ist die einzige Möglichkeit, Verzeichnis-EAs unter OS/2 zu überschreiben.)
-P Passwort
Verwendet ein Passwort zum Entschlüsseln verschlüsselter Zip-Datei-Einträge (falls vorhanden). DIES IST UNSICHER! Viele Mehrbenutzer-Betriebssysteme 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 nach Möglichkeit die nicht-einfache, interaktive Eingabeaufforderung, um Passwörter einzugeben. (Und wenn es wirklich um Sicherheit geht, verwenden Sie eine starke Verschlüsselung wie Pretty Good Privacy anstelle der relativ schwachen Verschlüsselung, die von Standard-Zip-Dienstprogrammen bereitgestellt wird.)
-q Führt Operationen leise aus (-qq = noch leiser). Normalerweise gibt unzip die Namen der Dateien aus, die es extrahiert oder testet, die Extraktionsmethoden, alle Dateikommentare oder Zip-Datei-Kommentare, die im Archiv gespeichert sind, und möglicherweise eine Zusammenfassung, wenn es mit jedem Archiv fertig ist. Die Optionen -q[q] unterdrücken das Ausgeben einiger oder aller dieser Nachrichten.
-s [OS/2, NT, MS-DOS] Konvertiert Leerzeichen in Dateinamen in Unterstriche. Da alle PC-Betriebssysteme Leerzeichen in Dateinamen zulassen, extrahiert unzip standardmäßig Dateinamen mit Leerzeichen intakt (z. B. „EA DATA. SF“). Dies kann jedoch umständlich sein, da MS-DOS Leerzeichen in Dateinamen nicht korrekt unterstützt. Durch die Konvertierung von Leerzeichen in Unterstriche können die Unannehmlichkeiten in einigen Fällen behoben werden.
-S [VMS] Konvertiert Textdateien (-a, -aa) in das Stream_LF-Datensatzformat, anstatt des standardmäßigen Textdateiformats mit variabler Länge. (Stream_LF ist das Standard-Datensatzformat von VMS unzip. Es wird angewendet, es sei denn, eine Konvertierung (-a, -aa und/oder -b, -bb) wird angefordert oder ein VMS-spezifischer Eintrag wird verarbeitet.)
-U [UNICODE_SUPPORT nur] ändert oder deaktiviert die UTF-8-Verarbeitung. Wenn UNICODE_SUPPORT verfügbar ist, erzwingt die Option -U, dass unzip alle Nicht-ASCII-Zeichen aus UTF-8-codierten Dateinamen als ``#Uxxxx'' (für UCS-2-Zeichen) oder ``#Lxxxxxx'' (für Unicode-Codepunkte, die 3 Oktette benötigen) escaped. Diese Option wird hauptsächlich für Debugging-Zwecke bereitgestellt, wenn vermutet wird, dass die relativ neue UTF-8-Unterstützung die extrahierten Dateinamen beschädigt.
Die Option -UU ermöglicht die vollständige Deaktivierung der Erkennung von UTF-8-codierten Dateinamen. Die Behandlung von Dateinamencodierungen in unzip fällt auf das Verhalten früherer Versionen zurück.
[alt, veraltet] Behält Dateinamen in Großbuchstaben bei, wenn sie unter MS-DOS, VMS usw. erstellt wurden. Siehe -L oben.
-V Behält (VMS)-Datei-Versionsnummern bei. VMS-Dateien können mit einer Versionsnummer im Format Datei.ext;## gespeichert werden. Standardmäßig werden die ``;##''-Versionsnummern entfernt, aber mit dieser Option können sie beibehalten werden. (Auf Dateisystemen, die Dateinamen auf eine besonders kurze Länge beschränken, können die Versionsnummern unabhängig von dieser Option abgeschnitten oder entfernt werden.)
-W [nur, wenn die WILD_STOP_AT_DIR-Compilezeit-Option aktiviert ist] ändert die Routinen für die Mustererkennung so, dass sowohl `?' (einzelnes Wildcard-Zeichen) als auch `*' (mehrere Wildcard-Zeichen) nicht mit dem Verzeichnis-Trennzeichen `/` übereinstimmen. (Die zweistellige Sequenz ``**'' wirkt als ein Wildcard-Zeichen für mehrere Zeichen, das das Verzeichnis-Trennzeichen in den übereinstimmenden Zeichen enthält.) Beispiele:
„*.c“ stimmt mit „foo.c“ überein, aber nicht mit „mydir/foo.c“
„**.c“ stimmt sowohl mit „foo.c“ als auch mit „mydir/foo.c“ überein
„*/*.c“ stimmt mit „bar/foo.c“ überein, aber nicht mit „baz/bar/foo.c“
„??*/*“ stimmt mit „ab/foo“ und „abc/foo“ überein
stimmt aber nicht mit „a/foo“ oder „a/b/foo“ überein
Dieses geänderte Verhalten entspricht dem Mustererkennungsstil, der von den Shells einiger der von UnZip unterstützten Ziel-Betriebssysteme verwendet wird (ein Beispiel ist Acorn RISC OS). Diese Option ist möglicherweise nicht auf Systemen verfügbar, auf denen das interne Verzeichnis-Trennzeichen `/' des Zip-Archivs als reguläres Zeichen in nativen Dateinamen des Betriebssystems zulässig ist. (Derzeit verwendet UnZip die gleichen Mustererkennungsregeln für Wildcard-Zip-Dateispezifikationen und Zip-Eintragsauswahlmuster in den meisten Ports. Für Systeme, die `/' als reguläres Dateinamenzeichen zulassen, würde die Option -W nicht wie erwartet für eine Wildcard-Zip-Dateispezifikation funktionieren.)
-X [VMS, Unix, OS/2, NT, Tandem] stellt die Besitzer-/Schutzinformationen (UICs und ACL-Einträge) unter VMS oder Benutzer- und Gruppeninformationen (UID/GID) unter Unix oder Zugriffskontrolllisten (ACLs) unter bestimmten Netzwerk-fähigen Versionen von OS/2 (Warp Server mit IBM LAN Server/Requester 3.0 bis Warp Connect mit IBM Peer 1.0) oder Sicherheits-ACLs unter Windows NT wieder her. In den meisten Fällen erfordert dies spezielle Systemberechtigungen, und das Verdoppeln der Option (-XX) unter NT weist unzip an, Berechtigungen für die Extraktion zu verwenden; unter Unix kann beispielsweise ein Benutzer, der mehreren Gruppen angehört, Dateien wiederherstellen, die einer dieser Gruppen gehören, solange die Benutzer-IDs mit seinen eigenen übereinstimmen. Beachten Sie, dass normale Dateiattribute immer wiederhergestellt werden – diese Option gilt nur für optionale, zusätzliche Besitzerinformationen, die auf einigen Betriebssystemen verfügbar sind. [NT-Zugriffskontrolllisten scheinen nicht besonders kompatibel mit OS/2-Zugriffskontrolllisten zu sein, daher wird nicht versucht, eine plattformübergreifende Portabilität von Zugriffsberechtigungen zu erreichen. Es ist nicht klar, unter welchen Bedingungen dies überhaupt nützlich wäre.]
-Y [VMS] Behandelt archivierte Dateinamenerweiterungen von „.nnn“ (wobei „nnn“ eine Dezimalzahl ist) so,
als wären es VMS-Versionsnummern („;nnn“). (Standardmäßig werden sie als Dateitypen behandelt.) Beispiel:
„a.b.3“ -> „a.b;3“.
-$ [MS-DOS, OS/2, NT] Stellt die Volumelabel wieder her, wenn das Extraktionsmedium ein Wechselmedium ist (z. B. eine Diskette). Durch die Verdoppelung der Option (-$$) können auch Festplatten mit einem Label versehen werden. Standardmäßig werden Volumelabel ignoriert.
-/ extensions
[Nur Acorn] Überschreibt die durch die Umgebungsvariable Unzip$Ext bereitgestellte Erweiterungsliste. Während der Extraktion werden Dateinamenerweiterungen, die mit einem der Elemente in dieser Erweiterungsliste übereinstimmen, vor den Basisnamen der extrahierten Datei gesetzt.
-: [alle außer Acorn, VM/CMS, MVS, Tandem] Ermöglicht das Extrahieren von Archivmitgliedern an Speicherorte außerhalb des aktuellen „Extraktionsstammordners“. Aus Sicherheitsgründen entfernt Unzip normalerweise „übergeordnete Verzeichnis“-Pfadkomponenten („../“) aus den Namen der extrahierten Dateien. Diese Sicherheitsfunktion (neu ab Version 5.50) verhindert, dass Unzip versehentlich Dateien in „sensible“ Bereiche außerhalb des aktiven Extraktionsordnerbaums schreibt. Die Option -: ermöglicht es Unzip, zum vorherigen, freizügigeren Verhalten zurückzukehren, um die genaue Extraktion (älterer) Archive zu ermöglichen, die „../“-Komponenten verwendet haben, um mehrere Verzeichnisbäume auf der Ebene des aktuellen Extraktionsordners zu erstellen. Diese Option ermöglicht nicht das Schreiben explizit in das Stammverzeichnis („/“). Um dies zu erreichen, muss das Extraktionsziel auf das Stammverzeichnis gesetzt werden (z. B. -d /). Wenn die Option -: jedoch angegeben ist, ist es dennoch möglich, implizit in das Stammverzeichnis zu schreiben, indem genügend „../“-Pfadkomponenten innerhalb des ZIP-Archivs angegeben werden. Verwenden Sie diese Option mit äußerster Vorsicht.
-^ [Nur Unix] Ermöglicht die Steuerung von Zeichen in den Namen von extrahierten ZIP-Archiveinträgen. Unter Unix kann ein Dateiname jedes (8-Bit-)Zeichen enthalten, mit den beiden Ausnahmen „/“ (Verzeichnistrennzeichen) und NUL (0x00, das C-String-Terminatorzeichen), es sei denn, das jeweilige Dateisystem hat restriktivere Konventionen. Im Allgemeinen ermöglicht dies das Einbetten von ASCII-Steuerzeichen (oder sogar ausgefeilten Steuerungsequenzen) in Dateinamen, zumindest auf „nativen“ Unix-Dateisystemen. Es kann jedoch sehr verdächtig sein, dieses Unix-„Feature“ zu nutzen. Eingebettete Steuerzeichen in Dateinamen können unerwünschte Nebenwirkungen haben, wenn sie auf dem Bildschirm durch einen Code angezeigt werden, der keine ausreichende Filterung durchführt. Und für normale Benutzer kann es schwierig sein, mit solchen Dateinamen umzugehen (z. B. wenn sie versuchen, sie für Öffnen-, Kopieren-, Verschieben- oder Löschvorgänge anzugeben). Daher wendet Unzip standardmäßig einen Filter an, der potenziell gefährliche Steuerzeichen aus den extrahierten Dateinamen entfernt. Die Option -^ ermöglicht es, diesen Filter zu überschreiben, falls eingebettete Dateinamenssteuerzeichen absichtlich wiederhergestellt werden sollen.
-2 [VMS] erzwingt die bedingungslose Konvertierung von Dateinamen in ODS2-kompatible Namen. Standardmäßig wird versucht, das Zielfilesystem auszunutzen, wobei Groß-/Kleinschreibung und erweiterte Dateinamenzeichen in einem ODS5-Zielfilesystem beibehalten werden; und es wird die ODS2-Kompatibilitäts-Dateinamenfilterung auf einem ODS2-Zielfilesystem angewendet.
Umgebungseinstellungen
Das Standardverhalten von unzip kann durch Optionen in einer Umgebungsvariablen geändert werden. Dies kann mit jeder Option erfolgen, ist aber wahrscheinlich am nützlichsten mit den Modifikatoren -a, -L, -C, -q, -o oder -n: unzip dazu bringen, Textdateien standardmäßig automatisch zu konvertieren, Dateinamen von Großschreibungssystemen in Kleinbuchstaben konvertieren, Dateinamen unabhängig von Groß-/Kleinschreibung abgleichen, es ruhiger machen oder es immer oder nie Dateien überschreiben lassen, wenn es sie extrahiert. Um beispielsweise unzip so ruhig wie möglich zu machen und nur Fehler zu melden, kann man einen der folgenden Befehle verwenden:
Unix Bourne Shell: UNZIP=-qq; export UNZIP
Unix C Shell: setenv UNZIP -qq
OS/2 oder MS-DOS:
set UNZIP=-qq
VMS (Anführungszeichen für Kleinbuchstaben):
define UNZIP_OPTS "-qq"
Umgebungseinstellungen werden wie jede andere Befehlszeilenoption behandelt, mit dem Unterschied, dass sie effektiv die ersten Optionen in der Befehlszeile sind. Um eine Umgebungseinstellung zu überschreiben, kann man den „Minus-Operator“ verwenden, um sie zu entfernen. Um beispielsweise eine der in dem obigen Beispiel verwendeten Ruhe-Flags zu überschreiben, verwendet man den Befehl
unzip --q[andere Optionen] zipfile
Das erste Minuszeichen ist das normale Schalterzeichen, und das zweite ist ein Minuszeichen, das auf die Option q wirkt. Der Effekt hier ist also, einen Teil der Ruhe zu deaktivieren. Um beide Ruhe-Flags zu deaktivieren, können zwei (oder mehr) Minusse verwendet werden:
unzip -t--q zipfile
unzip ---qt zipfile
(die beiden sind äquivalent). Dies mag seltsam oder verwirrend erscheinen, ist aber einigermaßen intuitiv: Ignoriere einfach das erste Minuszeichen und mache weiter. Es ist auch konsistent mit dem Verhalten von Unix [nice]({filename}../../nice)(1).
Wie in den obigen Beispielen vorgeschlagen, sind die Standardvariablennamen UNZIP_OPTS für VMS (wobei das zum Installieren von unzip als Fremdbefehl verwendete Symbol sonst mit der Umgebungsvariablen verwechselt würde) und UNZIP für alle anderen Betriebssysteme. Zur Kompatibilität mit zip(1) wird auch UNZIPOPT akzeptiert (frag nicht). Wenn sowohl UNZIP als auch UNZIPOPT definiert sind, hat UNZIP jedoch Vorrang. Die Diagnoseoption von unzip (-v ohne Dateinamen) kann verwendet werden, um die Werte aller vier möglichen unzip- und zipinfo-Umgebungsvariablen zu überprüfen.
Die Zeitzonenvariable (TZ) sollte entsprechend der lokalen Zeitzone gesetzt werden, damit die Optionen -f und -u korrekt funktionieren. Siehe die Beschreibung von -f oben für weitere Details. Diese Variable kann auch erforderlich sein, damit die Zeitstempel der extrahierten Dateien korrekt gesetzt werden. Die WIN32-Version (Win9x/ME/NT4/2K/XP/2K3) von unzip ruft die Zeitzonenkonfiguration aus der Registry ab, vorausgesetzt, diese ist im Control Panel korrekt eingestellt. Die TZ-Variable wird für diese Version ignoriert.
DEKRYPTIERUNG
Verschlüsselte Archive werden von der Info-ZIP-Software vollständig unterstützt, aber aufgrund der US-amerikanischen Exportbeschränkungen kann die De-/Kryptierungsunterstützung in Ihrem kompilierten Binärprogramm deaktiviert sein. Seit dem Frühjahr 2000 sind die US-amerikanischen Exportbeschränkungen jedoch aufgehoben, und unsere Quellarchive enthalten jetzt vollständigen Kryptocode. Wenn Sie Binärdistributionen mit aktivierter Kryptounterstützung benötigen, finden Sie diese in der Datei WHERE in jeder Info-ZIP-Quellen- oder Binärdistribution, sowohl innerhalb als auch außerhalb der USA.
Einige kompilierte Versionen von unzip unterstützen möglicherweise keine Dekryptionsfunktionen. Um eine Version auf Kryptounterstützung zu überprüfen, versuchen Sie entweder, ein verschlüsseltes Archiv zu testen oder zu extrahieren, oder überprüfen Sie den Diagnosebildschirm von unzip (siehe die Option -v oben) auf [decryption] als eine der speziellen Kompilierungsoptionen.
Wie oben erwähnt, kann die Option -P verwendet werden, um ein Passwort über die Befehlszeile anzugeben, dies geht jedoch mit einem Sicherheitsrisiko einher. Die bevorzugte Methode zur Dekryptions ist die normale Extraktion; wenn ein Zip-Datei-Element verschlüsselt ist, fordert unzip zur Eingabe des Passworts auf, ohne die Eingabe anzuzeigen. unzip verwendet weiterhin dasselbe Passwort, solange es gültig zu sein scheint, indem es einen 12-Byte-Header für jede Datei testet. Das korrekte Passwort stimmt immer mit dem Header überein, aber es besteht eine 1-zu-256-Chance, dass auch ein falsches Passwort dies tut. (Dies ist ein Sicherheitsmerkmal des PKWARE-Zip-Datei-Formats; es hilft, Brute-Force-Angriffe zu verhindern, die sonst einen großen Geschwindigkeitsvorteil erzielen könnten, indem sie nur den Header testen.) Wenn ein falsches Passwort angegeben wird, aber dennoch den Header-Test besteht, wird entweder ein falscher CRC für die extrahierten Daten generiert oder unzip schlägt während der Extraktion fehl, da die dekryptierten Bytes keinen gültigen komprimierten Datenstrom darstellen.
Wenn das erste Passwort den Header-Test für eine Datei nicht besteht, fordert unzip ein weiteres Passwort an, und so weiter, bis alle Dateien extrahiert wurden. Wenn ein Passwort nicht bekannt ist, wird die Eingabe eines Null-Passworts (d. h. nur ein Wagenrücklauf oder Enter) als Signal verwendet, um alle weiteren Abfragen zu überspringen. Nur unverschlüsselte Dateien im Archiv (den Archiven) werden anschließend extrahiert. (Tatsächlich stimmt das nicht ganz; ältere Versionen von zip(1) und zipcloak(1) erlaubten Null-Passwörter, so dass unzip jede verschlüsselte Datei überprüft, um festzustellen, ob das Null-Passwort funktioniert. Dies kann zu falschen positiven Ergebnissen und Extraktionsfehlern führen, wie oben erwähnt.)
Archive, die mit 8-Bit-Passwörtern verschlüsselt sind (z. B. Passwörter mit Akzentzeichen), sind möglicherweise nicht zwischen Systemen und/oder anderen Archivierungsprogrammen kompatibel. Dieses Problem ergibt sich aus der Verwendung verschiedener Kodierungsmethoden für solche Zeichen, darunter Latin-1 (ISO 8859-1) und OEM-Codepage 850. DOS PKZIP 2.04g verwendet die OEM-Codepage; Windows PKZIP 2.50 verwendet Latin-1 (und ist daher nicht mit DOS PKZIP kompatibel); Info-ZIP verwendet die OEM-Codepage in den DOS-, OS/2- und Win3.x-Versionen, aber ISO-Kodierung (Latin-1 usw.) in allen anderen Versionen; und Nico Maks WinZip 6.x erlaubt keine 8-Bit-Passwörter. UnZip 5.3 (oder neuer) versucht, zuerst den Standardsatz von Zeichen (z. B. Latin-1) und dann den alternativen Satz (z. B. OEM-Codepage) zum Testen von Passwörtern zu verwenden. Auf EBCDIC-Systemen wird, wenn beide Versuche fehlschlagen, EBCDIC-Kodierung als letztes Mittel getestet. (EBCDIC wird nicht auf Nicht-EBCDIC-Systemen getestet, da es keine bekannten Archivierungsprogramme gibt, die EBCDIC-Kodierung für die Verschlüsselung verwenden). Andere ISO-Zeichenkodierungen als Latin-1 werden nicht unterstützt. Die neue (teilweise) Unicode- (bzw. UTF-8-) Unterstützung in UnZip 6.0 wurde noch nicht an die Passwortbehandlung in unzip angepasst. Auf Systemen, die UTF-8 als native Zeichenkodierung verwenden, versucht unzip einfach, die Entschlüsselung mit dem nativ UTF-8-kodierten Passwort durchzuführen; die eingebauten Versuche, das Passwort in übersetzter Kodierung zu überprüfen, wurden noch nicht für die UTF-8-Unterstützung angepasst und schlagen daher fehl.
BEISPIELE
Um mit unzip alle Mitglieder des Archivs letters.zip in das aktuelle Verzeichnis und die Unterverzeichnisse darunter zu extrahieren und bei Bedarf Unterverzeichnisse zu erstellen:
unzip letters
Um alle Mitglieder von letters.zip nur in das aktuelle Verzeichnis zu extrahieren:
unzip -j letters
Um letters.zip zu testen und nur eine Zusammenfassungsmeldung auszugeben, die angibt, ob das Archiv in Ordnung ist oder nicht:
unzip -tq letters
Um alle Zip-Dateien im aktuellen Verzeichnis zu testen und nur die Zusammenfassungen auszugeben:
unzip -tq *.zip
(Der umgekehrte Schrägstrich vor dem Sternchen ist nur erforderlich, wenn die Shell Wildcards erweitert, wie unter Unix; stattdessen könnten auch doppelte Anführungszeichen verwendet werden, wie in den unten stehenden Beispielquellen). Um alle Mitglieder von letters.zip, deren Namen mit .tex enden, nach stdout zu extrahieren, automatisch in das lokale Zeilenendformat zu konvertieren und die Ausgabe an more(1) weiterzuleiten:
unzip -ca letters *.tex | more
Um die Binärdatei paper1.dvi in die Standardausgabe zu extrahieren und an ein Druckprogramm zu pipen:
unzip -p articles paper1.dvi | dvips
Um alle FORTRAN- und C-Quelldateien – *.f, *.c, *.h und Makefile – in das Verzeichnis /tmp zu extrahieren:
unzip source.zip "*.[fch]" Makefile -d /tmp
(Die doppelten Anführungszeichen sind nur unter Unix und nur dann erforderlich, wenn die Globbing-Funktion aktiviert ist). Um alle FORTRAN- und C-Quelldateien, unabhängig von der Groß- und Kleinschreibung (z. B. sowohl *.c als auch *.C und jede Datei mit dem Namen makefile, Makefile, MAKEFILE oder einem ähnlichen Namen), zu extrahieren:
unzip -C source.zip "*.[fch]" makefile -d /tmp
Um alle diese Dateien zu extrahieren, dabei alle Dateinamen in Groß- und Kleinschreibung von MS-DOS oder VMS in Kleinbuchstaben zu konvertieren und die Zeilenenden aller Dateien an den lokalen Standard anzupassen (unabhängig davon, ob Dateien als „binär“ markiert sind):
unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
Um nur neuere Versionen der Dateien zu extrahieren, die sich bereits im aktuellen Verzeichnis befinden, ohne eine Abfrage durchzuführen (HINWEIS: Seien Sie vorsichtig beim Entpacken in einer Zeitzone, wenn die ZIP-Datei in einer anderen Zeitzone erstellt wurde – ZIP-Archive, die nicht mit Zip 2.1 oder höher erstellt wurden, enthalten keine Zeitzoneninformationen, und eine „neuere“ Datei aus einer östlichen Zeitzone ist möglicherweise tatsächlich älter):
unzip -fo sources
Um neuere Versionen der Dateien zu extrahieren, die sich bereits im aktuellen Verzeichnis befinden, und alle Dateien zu erstellen, die noch nicht vorhanden sind (gleiche Einschränkung wie im vorherigen Beispiel):
unzip -uo sources
Um einen Diagnosebildschirm anzuzeigen, der zeigt, welche unzip- und zipinfo-Optionen in Umgebungsvariablen gespeichert sind, ob die Dekryptierungsunterstützung kompiliert wurde, mit welchem Compiler unzip kompiliert wurde usw.:
unzip -v
In den letzten fünf Beispielen wird davon ausgegangen, dass UNZIP oder UNZIP_OPTS auf -q gesetzt ist. Um eine einfache, unterdrückte Auflistung durchzuführen:
unzip -l file.zip
Um eine doppelt unterdrückte Auflistung durchzuführen:
unzip -ql file.zip
(Beachten Sie, dass die Erweiterung „.zip“ im Allgemeinen nicht erforderlich ist). Um eine Standardauflistung durchzuführen:
unzip --ql file.zip
oder
unzip -l-q file.zip
oder
unzip -l--q file.zip
(Zusätzliche Minuse in den Optionen schaden nicht).
HINWEISE
Der derzeitige Verantwortliche findet es als fauler Mensch sehr nützlich, ein Paar Aliase zu definieren: tt für „unzip -tq“ und ii für „unzip -Z“ (oder „zipinfo“). Man kann dann einfach „tt zipfile“ eingeben, um ein Archiv zu testen, was eine gute Angewohnheit ist. Mit etwas Glück gibt unzip „Keine Fehler in den komprimierten Daten von zipfile.zip“ aus, woraufhin man aufatmen kann.
Der Verantwortliche findet es auch nützlich, die Umgebungsvariable UNZIP auf -aL zu setzen und ist versucht, auch -C hinzuzufügen. Seine ZIPINFO-Variable ist auf -z gesetzt.
DIAGNOSE
Der Exit-Status (oder Fehlerlevel) nähert sich den von PKWARE definierten Exit-Codes an und nimmt die folgenden Werte an, mit Ausnahme von VMS:
0 normal; keine Fehler oder Warnungen festgestellt.
1 eine oder mehrere Warnfehler sind aufgetreten, aber die Verarbeitung wurde trotzdem erfolgreich abgeschlossen. Dies umfasst ZIP-Dateien, bei denen eine oder mehrere Dateien aufgrund einer nicht unterstützten Komprimierungsmethode oder einer Verschlüsselung mit einem unbekannten Passwort übersprungen wurden.
2 ein generischer Fehler im ZIP-Format wurde erkannt. Die Verarbeitung wurde möglicherweise erfolgreich abgeschlossen; einige beschädigte ZIP-Dateien, die von anderen Archivierungsprogrammen erstellt wurden, lassen sich mit einfachen Methoden beheben.
3 ein schwerwiegender Fehler im ZIP-Format wurde erkannt. Die Verarbeitung ist wahrscheinlich sofort fehlgeschlagen.
4 unzip konnte während der Programminitialisierung keinen Speicher für einen oder mehrere Puffer zuweisen.
5 unzip konnte keinen Speicher zuweisen oder kein TTY erhalten, um das oder die Entschlüsselungspasswörter einzulesen.
6 unzip konnte während der Dekomprimierung auf die Festplatte keinen Speicher zuweisen.
7 unzip konnte während der Dekomprimierung im Speicher keinen Speicher zuweisen.
8 [derzeit nicht verwendet]
9 die angegebenen ZIP-Dateien wurden nicht gefunden.
10 ungültige Optionen wurden in der Befehlszeile angegeben.
11 es wurden keine übereinstimmenden Dateien gefunden.
50 während der Extraktion ist die Festplatte voll (oder war es).
51 das Ende des ZIP-Archivs wurde vorzeitig erreicht.
80 der Benutzer hat unzip vorzeitig mit Strg+C (oder ähnlich) abgebrochen.
81 das Testen oder Extrahieren einer oder mehrerer Dateien ist aufgrund nicht unterstützter Komprimierungsmethoden oder nicht unterstützter Entschlüsselung fehlgeschlagen.
82 es wurden keine Dateien gefunden, da das oder die Entschlüsselungspasswörter falsch waren. (Wenn jedoch auch nur eine Datei erfolgreich verarbeitet wird, ist der Exit-Status 1.)
VMS interpretiert Standard-Unix- (oder PC-) Rückgabewerte als andere, beängstigendere Dinge, daher ordnet unzip sie stattdessen VMS-ähnlichen Statuscodes zu. Die aktuelle Zuordnung ist wie folgt: 1 (Erfolg) für einen normalen Exit, 0x7fff0001 für Warnfehler und (0x7fff000? + 16*normaler_unzip_exit_status) für alle anderen Fehler, wobei `?` 2 (Fehler) für unzip-Werte 2, 9-11 und 80-82 und 4 (fataler Fehler) für die restlichen (3-8, 50, 51) ist. Zusätzlich gibt es eine Kompilierungsoption, um dieses Verhalten zu erweitern: Wenn `RETURN_CODES` definiert ist, wird eine menschenlesbare Erklärung dafür ausgegeben, was der Fehlerstatus bedeutet.
FEHLER
Mehrteilige Archive werden noch nicht unterstützt, außer in Verbindung mit zip. (Alle Teile müssen in der richtigen Reihenfolge aneinandergehängt werden, und dann muss zip -F (für zip 2.x) oder zip -FF (für zip 3.x) auf dem aneinandergehängten Archiv ausgeführt werden, um es „zu reparieren“. Außerdem können zip 3.0 und neuer mehrteilige (geteilte) Archive in ein kombiniertes Einzeldatei-Archiv mit zip -s- inarchive -O outarchive zusammenführen. Weitere Informationen finden Sie auf der zip 3-Handbuchseite. Dies wird in der nächsten Hauptversion definitiv behoben.
Archive, die von der Standardeingabe gelesen werden, werden noch nicht unterstützt, außer mit funzip (und dann kann nur das erste Element des Archivs extrahiert werden).
Archive, die mit 8-Bit-Passwörtern verschlüsselt sind (z. B. Passwörter mit Akzenten), sind möglicherweise nicht über Systeme und/oder andere Archivierungsprogramme hinweg portierbar. Siehe die Diskussion unter ENTSCHLÜSSELUNG oben.
Die Option -M (more) von unzip versucht, die automatische Zeilenumbruchfunktion zu berücksichtigen. Der Code kann jedoch möglicherweise die korrekten Umbruchpositionen nicht erkennen. Erstens werden TAB-Zeichen (und ähnliche Steuersequenzen) nicht berücksichtigt, sie werden als normale druckbare Zeichen behandelt. Zweitens kann unzip je nach dem tatsächlichen System/der tatsächlichen OS-Portierung nicht die tatsächliche Bildschirmgeometrie erkennen, sondern sich stattdessen auf „üblicherweise verwendete“ Standarddimensionen verlassen. Die korrekte Verarbeitung von Tabulatoren würde die Implementierung einer Abfrage für die tatsächliche Tabulator-Konfiguration auf der Ausgabekonsole erfordern.
Datum, Uhrzeit und Berechtigungen von gespeicherten Verzeichnissen werden außer unter Unix nicht wiederhergestellt. (Unter Windows NT und neueren Versionen werden Zeitstempel jetzt wiederhergestellt.)
[MS-DOS] Beim Extrahieren oder Testen von Dateien aus einem Archiv auf einer defekten Diskette kann es vorkommen, dass das System bei Auswahl der Option „Fehler“ aus der DOS-Meldung „Abbrechen, Wiederholen, Fehler?“ hängen bleibt, was einen Neustart erforderlich macht. Dieses Problem scheint behoben zu sein, aber Strg+C (oder Strg+Pause) kann dennoch verwendet werden, um unzip zu beenden.
Unter DEC Ultrix schlug unzip manchmal bei langen Zip-Dateien fehl (falsche CRC-Prüfsumme, nicht immer reproduzierbar). Dies war anscheinend entweder auf einen Hardwarefehler (Cache-Speicher) oder einen Betriebssystemfehler (fehlerhafte Behandlung von Seitenfehlern) zurückzuführen. Da Ultrix zugunsten von Digital Unix (OSF/1) eingestellt wurde, ist dies möglicherweise kein Problem mehr.
[Unix] Unix-Sonderdateien wie FIFO-Puffer (benannte Pipes), Blockgeräte und Zeichengeräte werden nicht wiederhergestellt, selbst wenn sie in der Zip-Datei enthalten sind, und hart verknüpfte Dateien werden nicht erneut verknüpft. Im Wesentlichen werden nur reguläre Dateien, Verzeichnisse und symbolische (Soft-)Verknüpfungen von unzip wiederhergestellt.
[OS/2] Erweiterte Attribute für vorhandene Verzeichnisse werden nur dann aktualisiert, wenn die Option -o („alle überschreiben“) angegeben wird. Dies ist eine Einschränkung des Betriebssystems; da Verzeichnisse nur eine Erstellungszeit haben, hat unzip keine Möglichkeit, festzustellen, ob die gespeicherten Attribute neuer oder älter sind als die auf der Festplatte. In der Praxis bedeutet dies, dass ein zweistufiger Ansatz erforderlich sein kann: Zuerst das Archiv normal entpacken (mit oder ohne Aktualisierung vorhandener Dateien), dann nur die Verzeichniseinträge überschreiben (z. B. „unzip -o foo */“).
[VMS] Beim Extrahieren in ein anderes Verzeichnis wird für die Option -d nur die Syntax [.foo] akzeptiert; die einfache Unix-Syntax foo wird stillschweigend ignoriert (ebenso wie die weniger gebräuchliche VMS-Syntax foo.dir).
[VMS] Wenn die zu extrahierende Datei bereits vorhanden ist, ermöglicht die Abfrage von unzip nur das Überspringen, Überschreiben oder Umbenennen; es sollte zusätzlich eine Option zum Erstellen einer neuen Version der Datei geben. Tatsächlich erstellt die Option „überschreiben“ eine neue Version; die alte Version wird nicht überschrieben oder gelöscht.
SIEHE AUCH
funzip(1), zip(1), zipcloak(1), zipgrep(1), zipinfo(1), zipnote(1), zipsplit(1)
URL
Die Info-ZIP-Homepage befindet sich derzeit unter http://www.info-zip.org/pub/infozip/ oder ftp://ftp.info-zip.org/pub/infozip/.
AUTOREN
Die wichtigsten Info-ZIP-Autoren (aktuelle, halbaktive Mitglieder der Zip-Bugs-Arbeitsgruppe) sind: Ed Gordon (Zip, allgemeine Wartung, gemeinsam genutzter Code, Zip64, Win32, Unix, Unicode); Christian Spieler (UnZip-Wartungskoordination, VMS, MS-DOS, Win32, gemeinsam genutzter Code, allgemeine Zip- und UnZip-Integration und -Optimierung); Onno van der Linden (Zip); Mike White (Win32, Windows-GUI, Windows-DLLs); Kai Uwe Rommel (OS/2, Win32); Steven M. Schweda (VMS, Unix, Unterstützung neuer Funktionen); Paul Kienitz (Amiga, Win32, Unicode); Chris Herborth (BeOS, QNX, Atari); Jonathan Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC OS); Harald Denker (Atari, MVS); John Bush (Solaris, Amiga); Hunter Goatley (VMS, Info-ZIP-Site-Wartung); Steve Salisbury (Win32); Steve Miller (Windows CE GUI), Johnny Lee (MS-DOS, Win32, Zip64) und Dave Smith (Tandem NSK).
Die folgenden Personen waren ehemalige Mitglieder der Info-ZIP-Entwicklungsgruppe und leisteten bedeutende Beiträge zu wichtigen Teilen des aktuellen Codes: Greg „Cave Newt“ Roelofs (UnZip, unshrink-Dekomprimierung); Jean-loup Gailly (deflate-Komprimierung); Mark Adler (inflate-Dekomprimierung, fUnZip).
Der Autor des ursprünglichen Unzip-Codes, auf dem Info-ZIPs basiert, ist Samuel H. Smith; Carl Mascott erstellte die erste Unix-Portierung; und David P. Kirschbaum organisierte und leitete Info-ZIP in seinen frühen Tagen, wobei Keith Petersen die ursprüngliche Mailingliste bei WSMR-SimTel20 bereitstellte. Die vollständige Liste der Mitarbeiter von UnZip ist inzwischen recht umfangreich; bitte beachten Sie die Datei CONTRIBS in der UnZip- Quellcodeverteilung, um eine relativ vollständige Version zu erhalten.
VERSIONEN
v1.2 15. März 89 Samuel H. Smith
v2.0 9. September 89 Samuel H. Smith
v2.x Herbst 1989 viele Usenet-Mitarbeiter
v3.0 1. Mai 90 Info-ZIP (DPK, Konsolidator)
v3.1 15. August 90 Info-ZIP (DPK, Konsolidator)
v4.0 1. Dezember 90 Info-ZIP (GRR, Verantwortlicher)
v4.1 12. Mai 91 Info-ZIP
v4.2 20. März 92 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.0 21. August 92 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.01 15. Januar 93 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.1 7. Februar 94 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.11 2. August 94 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.12 28. August 94 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.2 30. April 96 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.3 22. April 97 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.31 31. Mai 97 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.32 3. November 97 Info-ZIP (Zip-Bugs-Untergruppe, GRR)
v5.4 28. November 98 Info-ZIP (Zip-Bugs-Untergruppe, SPC)
v5.41 16. April 00 Info-ZIP (Zip-Bugs-Untergruppe, SPC)
v5.42 14. Januar 01 Info-ZIP (Zip-Bugs-Untergruppe, SPC)
v5.5 17. Februar 02 Info-ZIP (Zip-Bugs-Untergruppe, SPC)
v5.51 22. Mai 04 Info-ZIP (Zip-Bugs-Untergruppe, SPC)
v5.52 28. Februar 05 Info-ZIP (Zip-Bugs-Untergruppe, SPC)
v6.0 20. April 09 Info-ZIP (Zip-Bugs-Untergruppe, SPC)