diff options
Diffstat (limited to 'upstream/mageia-cauldron/man1/unzip.1')
-rw-r--r-- | upstream/mageia-cauldron/man1/unzip.1 | 1042 |
1 files changed, 1042 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man1/unzip.1 b/upstream/mageia-cauldron/man1/unzip.1 new file mode 100644 index 00000000..4d66073c --- /dev/null +++ b/upstream/mageia-cauldron/man1/unzip.1 @@ -0,0 +1,1042 @@ +.\" Copyright (c) 1990-2009 Info-ZIP. All rights reserved. +.\" +.\" See the accompanying file LICENSE, version 2009-Jan-02 or later +.\" (the contents of which are also included in unzip.h) for terms of use. +.\" If, for some reason, all these files are missing, the Info-ZIP license +.\" also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html +.\" +.\" unzip.1 by Greg Roelofs, Fulvio Marino, Jim van Zandt and others. +.\" +.\" ========================================================================= +.\" define .EX/.EE (for multiline user-command examples; normal Courier font) +.de EX +.in +4n +.nf +.ft CW +.. +.de EE +.ft R +.fi +.in -4n +.. +.\" ========================================================================= +.TH UNZIP 1L "20 April 2009 (v6.0)" "Info-ZIP" +.SH NAME +unzip \- list, test and extract compressed files in a ZIP archive +.PD +.SH SYNOPSIS +\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMUVWX$/:^\fP]] +\fIfile\fP[\fI.zip\fP] [\fIfile(s)\fP\ .\|.\|.] +[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.] [\fB\-d\fP\ \fIexdir\fP] +.PD +.\" ========================================================================= +.SH DESCRIPTION +\fIunzip\fP will list, test, or extract files from a ZIP archive, commonly +found on MS-DOS systems. The default behavior (with no options) is to extract +into the current directory (and subdirectories below it) all files from the +specified ZIP archive. A companion program, \fIzip\fP(1L), creates ZIP +archives; both programs are compatible with archives created by PKWARE's +\fIPKZIP\fP and \fIPKUNZIP\fP for MS-DOS, but in many cases the program +options or default behaviors differ. +.PD +.\" ========================================================================= +.SH ARGUMENTS +.TP +.IR file [ .zip ] +Path of the ZIP archive(s). If the file specification is a wildcard, +each matching file is processed in an order determined by the operating +system (or file system). Only the filename can be a wildcard; the path +itself cannot. Wildcard expressions are similar to those supported in +commonly used Unix shells (\fIsh\fP, \fIksh\fP, \fIcsh\fP) and may contain: +.RS +.IP * +matches a sequence of 0 or more characters +.IP ? +matches exactly 1 character +.IP [.\|.\|.] +matches any single character found inside the brackets; ranges are specified +by a beginning character, a hyphen, and an ending character. If an exclamation +point or a caret (`!' or `^') follows the left bracket, then the range of +characters within the brackets is complemented (that is, anything \fIexcept\fP +the characters inside the brackets is considered a match). To specify a +verbatim left bracket, the three-character sequence ``[[]'' has to be used. +.RE +.IP +(Be sure to quote any character that might otherwise be interpreted or +modified by the operating system, particularly under Unix and VMS.) If no +matches are found, the specification is assumed to be a literal filename; +and if that also fails, the suffix \fC.zip\fR is appended. Note that +self-extracting ZIP files are supported, as with any other ZIP archive; +just specify the \fC.exe\fR suffix (if any) explicitly. +.IP [\fIfile(s)\fP] +An optional list of archive members to be processed, separated by spaces. +(VMS versions compiled with VMSCLI defined must delimit files with commas +instead. See \fB\-v\fP in \fBOPTIONS\fP below.) +Regular expressions (wildcards) may be used to match multiple members; see +above. Again, be sure to quote expressions that would otherwise be expanded +or modified by the operating system. +.IP [\fB\-x\fP\ \fIxfile(s)\fP] +An optional list of archive members to be excluded from processing. +Since wildcard characters normally match (`/') directory separators +(for exceptions see the option \fB\-W\fP), this option may be used +to exclude any files that are in subdirectories. For +example, ``\fCunzip foo *.[ch] -x */*\fR'' would extract all C source files +in the main directory, but none in any subdirectories. Without the \fB\-x\fP +option, all C source files in all directories within the zipfile would be +extracted. +.IP [\fB\-d\fP\ \fIexdir\fP] +An optional directory to which to extract files. By default, all files +and subdirectories are recreated in the current directory; the \fB\-d\fP +option allows extraction in an arbitrary directory (always assuming one +has permission to write to the directory). This option need not appear +at the end of the command line; it is also accepted before the zipfile +specification (with the normal options), immediately after the zipfile +specification, or between the \fIfile(s)\fP and the \fB\-x\fP option. +The option and directory may be concatenated without any white space +between them, but note that this may cause normal shell behavior to be +suppressed. In particular, ``\fC\-d\ ~\fR'' (tilde) is expanded by Unix +C shells into the name of the user's home directory, but ``\fC\-d~\fR'' +is treated as a literal subdirectory ``\fB~\fP'' of the current directory. +.\" ========================================================================= +.SH OPTIONS +Note that, in order to support obsolescent hardware, \fIunzip\fP's usage +screen is limited to 22 or 23 lines and should therefore be considered +only a reminder of the basic \fIunzip\fP syntax rather than an exhaustive +list of all possible flags. The exhaustive list follows: +.TP +.B \-Z +\fIzipinfo\fP(1L) mode. If the first option on the command line is \fB\-Z\fP, +the remaining options are taken to be \fIzipinfo\fP(1L) options. See the +appropriate manual page for a description of these options. +.TP +.B \-A +[OS/2, Unix DLL] print extended help for the DLL's programming interface (API). +.TP +.B \-c +extract files to stdout/screen (``CRT''). This option is similar to the +\fB\-p\fP option except that the name of each file is printed as it is +extracted, the \fB\-a\fP option is allowed, and ASCII-EBCDIC conversion +is automatically performed if appropriate. This option is not listed in +the \fIunzip\fP usage screen. +.TP +.B \-f +freshen existing files, i.e., extract only those files that +already exist on disk and that are newer than the disk copies. By +default \fIunzip\fP queries before overwriting, but the \fB\-o\fP option +may be used to suppress the queries. Note that under many operating systems, +the TZ (timezone) environment variable must be set correctly in order for +\fB\-f\fP and \fB\-u\fP to work properly (under Unix the variable is usually +set automatically). The reasons for this are somewhat subtle but +have to do with the differences between DOS-format file times (always local +time) and Unix-format times (always in GMT/UTC) and the necessity to compare +the two. A typical TZ value is ``PST8PDT'' (US Pacific time with automatic +adjustment for Daylight Savings Time or ``summer time''). +.TP +.B \-l +list archive files (short format). The names, uncompressed file sizes and +modification dates and times of the specified files are printed, along +with totals for all files specified. If UnZip was compiled with OS2_EAS +defined, the \fB\-l\fP option also lists columns for the sizes of stored +OS/2 extended attributes (EAs) and OS/2 access control lists (ACLs). In +addition, the zipfile comment and individual file comments (if any) are +displayed. If a file was archived from a single-case file system (for +example, the old MS-DOS FAT file system) and the \fB\-L\fP option was given, +the filename is converted to lowercase and is prefixed with a caret (^). +.TP +.B \-p +extract files to pipe (stdout). Nothing but the file data is sent to +stdout, and the files are always extracted in binary format, just as they +are stored (no conversions). +.TP +.B \-t +test archive files. This option extracts each specified file in memory +and compares the CRC (cyclic redundancy check, an enhanced checksum) of +the expanded file with the original file's stored CRC value. +.TP +.B \-T +[most OSes] set the timestamp on the archive(s) to that of the newest file +in each one. This corresponds to \fIzip\fP's \fB\-go\fP option except that +it can be used on wildcard zipfiles (e.g., ``\fCunzip \-T \e*.zip\fR'') and +is much faster. +.TP +.B \-u +update existing files and create new ones if needed. This option performs +the same function as the \fB\-f\fP option, extracting (with query) files +that are newer than those with the same name on disk, and in addition it +extracts those files that do not already exist on disk. See \fB\-f\fP +above for information on setting the timezone properly. +.TP +.B \-v +list archive files (verbose format) or show diagnostic version info. +This option has evolved and now behaves as both an option and a modifier. +As an option it has two purposes: when a zipfile is specified with no +other options, \fB\-v\fP lists archive files verbosely, adding to the +basic \fB\-l\fP info the compression method, compressed size, +compression ratio and 32-bit CRC. In contrast to most of the competing +utilities, \fIunzip\fP removes the 12 additional header bytes of +encrypted entries from the compressed size numbers. Therefore, +compressed size and compression ratio figures are independent of the entry's +encryption status and show the correct compression performance. (The complete +size of the encrypted compressed data stream for zipfile entries is reported +by the more verbose \fIzipinfo\fP(1L) reports, see the separate manual.) +When no zipfile is specified (that is, the complete command is simply +``\fCunzip \-v\fR''), a diagnostic screen is printed. In addition to +the normal header with release date and version, \fIunzip\fP lists the +home Info-ZIP ftp site and where to find a list of other ftp and non-ftp +sites; the target operating system for which it was compiled, as well +as (possibly) the hardware on which it was compiled, the compiler and +version used, and the compilation date; any special compilation options +that might affect the program's operation (see also \fBDECRYPTION\fP below); +and any options stored in environment variables that might do the same +(see \fBENVIRONMENT OPTIONS\fP below). As a modifier it works in +conjunction with other options (e.g., \fB\-t\fP) to produce more +verbose or debugging output; this is not yet fully implemented +but will be in future releases. +.TP +.B \-z +display only the archive comment. +.PD +.\" ========================================================================= +.SH MODIFIERS +.TP +.B \-a +convert text files. Ordinarily all files are extracted exactly as they +are stored (as ``binary'' files). The \fB\-a\fP option causes files identified +by \fIzip\fP as text files (those with the `t' label in \fIzipinfo\fP +listings, rather than `b') to be automatically extracted as such, converting +line endings, end-of-file characters and the character set itself as necessary. +(For example, Unix files use line feeds (LFs) for end-of-line (EOL) and +have no end-of-file (EOF) marker; Macintoshes use carriage returns (CRs) +for EOLs; and most PC operating systems use CR+LF for EOLs and control-Z for +EOF. In addition, IBM mainframes and the Michigan Terminal System use EBCDIC +rather than the more common ASCII character set, and NT supports Unicode.) +Note that \fIzip\fP's identification of text files is by no means perfect; some +``text'' files may actually be binary and vice versa. \fIunzip\fP therefore +prints ``\fC[text]\fR'' or ``\fC[binary]\fR'' as a visual check for each file +it extracts when using the \fB\-a\fP option. The \fB\-aa\fP option forces +all files to be extracted as text, regardless of the supposed file type. +On VMS, see also \fB\-S\fP. +.TP +.B \-b +[general] treat all files as binary (no text conversions). This is a shortcut +for \fB\-\-\-a\fP. +.TP +.B \-b +[Tandem] force the creation files with filecode type 180 ('C') when +extracting Zip entries marked as "text". (On Tandem, \fB\-a\fP is enabled +by default, see above). +.TP +.B \-b +[VMS] auto-convert binary files (see \fB\-a\fP above) to fixed-length, +512-byte record format. Doubling the option (\fB\-bb\fP) forces all files +to be extracted in this format. When extracting to standard output +(\fB\-c\fP or \fB\-p\fP option in effect), the default conversion of text +record delimiters is disabled for binary (\fB\-b\fP) resp. all (\fB\-bb\fP) +files. +.TP +.B \-B +[when compiled with UNIXBACKUP defined] save a backup copy of each +overwritten file. The backup file is gets the name of the target file with +a tilde and optionally a unique sequence number (up to 5 digits) appended. +The sequence number is applied whenever another file with the original name +plus tilde already exists. When used together with the "overwrite all" +option \fB\-o\fP, numbered backup files are never created. In this case, +all backup files are named as the original file with an appended tilde, +existing backup files are deleted without notice. +This feature works similarly to the default behavior of \fIemacs\fP(1) +in many locations. +.IP +Example: the old copy of ``\fCfoo\fR'' is renamed to ``\fCfoo~\fR''. +.IP +Warning: Users should be aware that the \fB-B\fP option does not prevent +loss of existing data under all circumstances. For example, when +\fIunzip\fP is run in overwrite-all mode, an existing ``\fCfoo~\fR'' file +is deleted before \fIunzip\fP attempts to rename ``\fCfoo\fR'' to +``\fCfoo~\fR''. When this rename attempt fails (because of a file locks, +insufficient privileges, or ...), the extraction of ``\fCfoo~\fR'' gets +cancelled, but the old backup file is already lost. A similar scenario +takes place when the sequence number range for numbered backup files gets +exhausted (99999, or 65535 for 16-bit systems). In this case, the backup +file with the maximum sequence number is deleted and replaced by the new +backup version without notice. +.TP +.B \-C +use case-insensitive matching for the selection of archive entries +from the command-line list of extract selection patterns. +\fIunzip\fP's philosophy is ``you get what you ask for'' (this is +also responsible for the \fB\-L\fP/\fB\-U\fP change; see the relevant +options below). Because some file systems are fully case-sensitive +(notably those under the Unix operating system) and because +both ZIP archives and \fIunzip\fP itself are portable across platforms, +\fIunzip\fP's default behavior is to match both wildcard and literal +filenames case-sensitively. That is, specifying ``\fCmakefile\fR'' +on the command line will \fIonly\fP match ``makefile'' in the archive, +not ``Makefile'' or ``MAKEFILE'' (and similarly for wildcard specifications). +Since this does not correspond to the behavior of many other +operating/file systems (for example, OS/2 HPFS, which preserves +mixed case but is not sensitive to it), the \fB\-C\fP option may be +used to force all filename matches to be case-insensitive. In the +example above, all three files would then match ``\fCmakefile\fR'' +(or ``\fCmake*\fR'', or similar). The \fB\-C\fP option affects +file specs in both the normal file list and the excluded-file list (xlist). +.IP +Please note that the \fB\-C\fP option does neither affect the search for +the zipfile(s) nor the matching of archive entries to existing files on +the extraction path. On a case-sensitive file system, \fIunzip\fP will +never try to overwrite a file ``FOO'' when extracting an entry ``foo''! +.TP +.B \-D +skip restoration of timestamps for extracted items. Normally, \fIunzip\fP +tries to restore all meta-information for extracted items that are supplied +in the Zip archive (and do not require privileges or impose a security risk). +By specifying \fB\-D\fP, \fIunzip\fP is told to suppress restoration of +timestamps for directories explicitly created from Zip archive entries. +This option only applies to ports that support setting timestamps for +directories (currently ATheOS, BeOS, MacOS, OS/2, Unix, VMS, Win32, for other +\fIunzip\fP ports, \fB\-D\fP has no effect). +The duplicated option \fB\-DD\fP forces suppression of timestamp restoration +for all extracted entries (files and directories). This option results in +setting the timestamps for all extracted entries to the current time. +.IP +On VMS, the default setting for this option is \fB\-D\fP for consistency +with the behaviour of BACKUP: file timestamps are restored, timestamps of +extracted directories are left at the current time. To enable restoration +of directory timestamps, the negated option \fB\--D\fP should be specified. +On VMS, the option \fB\-D\fP disables timestamp restoration for all extracted +Zip archive items. (Here, a single \fB\-D\fP on the command line combines +with the default \fB\-D\fP to do what an explicit \fB\-DD\fP does on other +systems.) +.TP +.B \-E +[MacOS only] display contents of MacOS extra field during restore operation. +.TP +.B \-F +[Acorn only] suppress removal of NFS filetype extension from stored filenames. +.TP +.B \-F +[non-Acorn systems supporting long filenames with embedded commas, +and only if compiled with ACORN_FTYPE_NFS defined] translate +filetype information from ACORN RISC OS extra field blocks into a +NFS filetype extension and append it to the names of the extracted files. +(When the stored filename appears to already have an appended NFS filetype +extension, it is replaced by the info from the extra field.) +.TP +.B \-i +[MacOS only] ignore filenames stored in MacOS extra fields. Instead, the +most compatible filename stored in the generic part of the entry's header +is used. +.TP +.B \-j +junk paths. The archive's directory structure is not recreated; all files +are deposited in the extraction directory (by default, the current one). +.TP +.B \-J +[BeOS only] junk file attributes. The file's BeOS file attributes are not +restored, just the file's data. +.TP +.B \-J +[MacOS only] ignore MacOS extra fields. All Macintosh specific info +is skipped. Data-fork and resource-fork are restored as separate files. +.TP +.B \-K +[AtheOS, BeOS, Unix only] retain SUID/SGID/Tacky file attributes. Without +this flag, these attribute bits are cleared for security reasons. +.TP +.B \-L +convert to lowercase any filename originating on an uppercase-only operating +system or file system. (This was \fIunzip\fP's default behavior in releases +prior to 5.11; the new default behavior is identical to the old behavior with +the \fB\-U\fP option, which is now obsolete and will be removed in a future +release.) Depending on the archiver, files archived under single-case +file systems (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase names; +this can be ugly or inconvenient when extracting to a case-preserving +file system such as OS/2 HPFS or a case-sensitive one such as under +Unix. By default \fIunzip\fP lists and extracts such filenames exactly as +they're stored (excepting truncation, conversion of unsupported characters, +etc.); this option causes the names of all files from certain systems to be +converted to lowercase. The \fB\-LL\fP option forces conversion of every +filename to lowercase, regardless of the originating file system. +.TP +.B \-M +pipe all output through an internal pager similar to the Unix \fImore\fP(1) +command. At the end of a screenful of output, \fIunzip\fP pauses with a +``\-\-More\-\-'' prompt; the next screenful may be viewed by pressing the +Enter (Return) key or the space bar. \fIunzip\fP can be terminated by +pressing the ``q'' key and, on some systems, the Enter/Return key. Unlike +Unix \fImore\fP(1), there is no forward-searching or editing capability. +Also, \fIunzip\fP doesn't notice if long lines wrap at the edge of the screen, +effectively resulting in the printing of two or more lines and the likelihood +that some text will scroll off the top of the screen before being viewed. +On some systems the number of available lines on the screen is not detected, +in which case \fIunzip\fP assumes the height is 24 lines. +.TP +.B \-n +never overwrite existing files. If a file already exists, skip the extraction +of that file without prompting. By default \fIunzip\fP queries before +extracting any file that already exists; the user may choose to overwrite +only the current file, overwrite all files, skip extraction of the current +file, skip extraction of all existing files, or rename the current file. +.TP +.B \-N +[Amiga] extract file comments as Amiga filenotes. File comments are created +with the \-c option of \fIzip\fP(1L), or with the \-N option of the Amiga port +of \fIzip\fP(1L), which stores filenotes as comments. +.TP +.B \-o +overwrite existing files without prompting. This is a dangerous option, so +use it with care. (It is often used with \fB\-f\fP, however, and is the only +way to overwrite directory EAs under OS/2.) +.IP \fB\-P\fP\ \fIpassword\fP +use \fIpassword\fP to decrypt encrypted zipfile entries (if any). \fBTHIS IS +INSECURE!\fP Many multi-user operating systems provide ways for any user to +see the current command line of any other user; even on stand-alone systems +there is always the threat of over-the-shoulder peeking. Storing the plaintext +password as part of a command line in an automated script is even worse. +Whenever possible, use the non-echoing, interactive prompt to enter passwords. +(And where security is truly important, use strong encryption such as Pretty +Good Privacy instead of the relatively weak encryption provided by standard +zipfile utilities.) +.TP +.B \-q +perform operations quietly (\fB\-qq\fP = even quieter). Ordinarily \fIunzip\fP +prints the names of the files it's extracting or testing, the extraction +methods, any file or zipfile comments that may be stored in the archive, +and possibly a summary when finished with each archive. The \fB\-q\fP[\fBq\fP] +options suppress the printing of some or all of these messages. +.TP +.B \-s +[OS/2, NT, MS-DOS] convert spaces in filenames to underscores. Since all PC +operating systems allow spaces in filenames, \fIunzip\fP by default extracts +filenames with spaces intact (e.g., ``\fCEA\ DATA.\ SF\fR''). This can be +awkward, however, since MS-DOS in particular does not gracefully support +spaces in filenames. Conversion of spaces to underscores can eliminate the +awkwardness in some cases. +.TP +.B \-S +[VMS] convert text files (\fB\-a\fP, \fB\-aa\fP) into Stream_LF record format, +instead of the text-file default, variable-length record format. +(Stream_LF is the default record format of VMS \fIunzip\fP. It is applied +unless conversion (\fB\-a\fP, \fB\-aa\fP and/or \fB\-b\fP, \fB\-bb\fP) is +requested or a VMS-specific entry is processed.) +.TP +.B \-U +[UNICODE_SUPPORT only] modify or disable UTF-8 handling. +When UNICODE_SUPPORT is available, the option \fB\-U\fP forces \fIunzip\fP +to escape all non-ASCII characters from UTF-8 coded filenames as ``#Uxxxx'' +(for UCS-2 characters, or ``#Lxxxxxx'' for unicode codepoints needing 3 +octets). This option is mainly provided for debugging purpose when the +fairly new UTF-8 support is suspected to mangle up extracted filenames. +.IP +The option \fB\-UU\fP allows to entirely disable the recognition of UTF-8 +encoded filenames. The handling of filename codings within \fIunzip\fP falls +back to the behaviour of previous versions. +.IP +[old, obsolete usage] leave filenames uppercase if +created under MS-DOS, VMS, etc. See \fB\-L\fP above. +.TP +.B \-V +retain (VMS) file version numbers. VMS files can be stored with a version +number, in the format \fCfile.ext;##\fR. By default the ``\fC;##\fR'' version +numbers are stripped, but this option allows them to be retained. (On +file systems that limit filenames to particularly short lengths, the version +numbers may be truncated or stripped regardless of this option.) +.TP +.B \-W +[only when WILD_STOP_AT_DIR compile-time option enabled] +modifies the pattern matching routine so that both `?' (single-char wildcard) +and `*' (multi-char wildcard) do not match the directory separator character +`/'. (The two-character sequence ``**'' acts as a multi-char wildcard that +includes the directory separator in its matched characters.) Examples: +.PP +.EX + "*.c" matches "foo.c" but not "mydir/foo.c" + "**.c" matches both "foo.c" and "mydir/foo.c" + "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c" + "??*/*" matches "ab/foo" and "abc/foo" + but not "a/foo" or "a/b/foo" +.EE +.IP +This modified behaviour is equivalent to the pattern matching style +used by the shells of some of UnZip's supported target OSs (one +example is Acorn RISC OS). This option may not be available on systems +where the Zip archive's internal directory separator character `/' is +allowed as regular character in native operating system filenames. +(Currently, UnZip uses the same pattern matching rules for both wildcard +zipfile specifications and zip entry selection patterns in most ports. +For systems allowing `/' as regular filename character, the -W option +would not work as expected on a wildcard zipfile specification.) +.TP +.B \-X +[VMS, Unix, OS/2, NT, Tandem] restore owner/protection info (UICs and ACL +entries) under VMS, or user and group info (UID/GID) under Unix, or access +control lists (ACLs) under certain network-enabled versions of OS/2 +(Warp Server with IBM LAN Server/Requester 3.0 to 5.0; Warp Connect with +IBM Peer 1.0), or security ACLs under Windows NT. In most cases this will +require special system privileges, and doubling the option (\fB\-XX\fP) +under NT instructs \fIunzip\fP to use privileges for extraction; but under +Unix, for example, a user who belongs to several groups can restore files +owned by any of those groups, as long as the user IDs match his or her own. +Note that ordinary file attributes are always restored--this option applies +only to optional, extra ownership info available on some operating systems. +[NT's access control lists do not appear to be especially compatible with +OS/2's, so no attempt is made at cross-platform portability of access +privileges. It is not clear under what conditions this would ever be +useful anyway.] +.TP +.B \-Y +[VMS] treat archived file name endings of ``.nnn'' (where ``nnn'' is a +decimal number) as if they were VMS version numbers (``;nnn''). +(The default is to treat them as file types.) Example: +.EX + "a.b.3" -> "a.b;3". +.EE +.TP +.B \-$ +.\" Amiga support possible eventually, but not yet +[MS-DOS, OS/2, NT] restore the volume label if the extraction medium is +removable (e.g., a diskette). Doubling the option (\fB\-$$\fP) allows fixed +media (hard disks) to be labeled as well. By default, volume labels are +ignored. +.IP \fB\-/\fP\ \fIextensions\fP +[Acorn only] overrides the extension list supplied by Unzip$Ext environment +variable. During extraction, filename extensions that match one of the items +in this extension list are swapped in front of the base name of the extracted +file. +.TP +.B \-: +[all but Acorn, VM/CMS, MVS, Tandem] allows to extract archive members into +locations outside of the current `` extraction root folder''. For security +reasons, \fIunzip\fP normally removes ``parent dir'' path components +(``../'') from the names of extracted file. This safety feature (new for +version 5.50) prevents \fIunzip\fP from accidentally writing files to +``sensitive'' areas outside the active extraction folder tree head. The +\fB\-:\fP option lets \fIunzip\fP switch back to its previous, more liberal +behaviour, to allow exact extraction of (older) archives that used ``../'' +components to create multiple directory trees at the level of the current +extraction folder. This option does not enable writing explicitly to the +root directory (``/''). To achieve this, it is necessary to set the +extraction target folder to root (e.g. \fB\-d / \fP). However, when the +\fB\-:\fP option is specified, it is still possible to implicitly write to +the root directory by specifying enough ``../'' path components within the +zip archive. +Use this option with extreme caution. +.TP +.B \-^ +[Unix only] allow control characters in names of extracted ZIP archive +entries. On Unix, a file name may contain any (8-bit) character code with +the two exception '/' (directory delimiter) and NUL (0x00, the C string +termination indicator), unless the specific file system has more +restrictive conventions. Generally, this allows to embed ASCII control +characters (or even sophisticated control sequences) in file names, at least +on 'native' Unix file systems. However, it may be highly suspicious to +make use of this Unix "feature". Embedded control characters in file names +might have nasty side effects when displayed on screen by some listing code +without sufficient filtering. And, for ordinary users, it may be difficult +to handle such file names (e.g. when trying to specify it for open, copy, +move, or delete operations). Therefore, \fIunzip\fP applies a filter by +default that removes potentially dangerous control characters from the +extracted file names. The \fB-^\fP option allows to override this filter +in the rare case that embedded filename control characters are to be +intentionally restored. +.TP +.B \-2 +[VMS] force unconditionally conversion of file names to ODS2-compatible +names. The default is to exploit the destination file system, preserving +case and extended file name characters on an ODS5 destination file system; +and applying the ODS2-compatibility file name filtering on an ODS2 destination +file system. +.PD +.\" ========================================================================= +.SH "ENVIRONMENT OPTIONS" +\fIunzip\fP's default behavior may be modified via options placed in +an environment variable. This can be done with any option, but it +is probably most useful with the \fB\-a\fP, \fB\-L\fP, \fB\-C\fP, \fB\-q\fP, +\fB\-o\fP, or \fB\-n\fP modifiers: make \fIunzip\fP auto-convert text +files by default, make it convert filenames from uppercase systems to +lowercase, make it match names case-insensitively, make it quieter, +or make it always overwrite or never overwrite files as it extracts +them. For example, to make \fIunzip\fP act as quietly as possible, only +reporting errors, one would use one of the following commands: +.TP + Unix Bourne shell: +UNZIP=\-qq; export UNZIP +.TP + Unix C shell: +setenv UNZIP \-qq +.TP + OS/2 or MS-DOS: +set UNZIP=\-qq +.TP + VMS (quotes for \fIlowercase\fP): +define UNZIP_OPTS "\-qq" +.PP +Environment options are, in effect, considered to be just like any other +command-line options, except that they are effectively the first options +on the command line. To override an environment option, one may use the +``minus operator'' to remove it. For instance, to override one of the +quiet-flags in the example above, use the command +.PP +.EX +unzip \-\-q[\fIother options\fP] zipfile +.EE +.PP +The first hyphen is the normal +switch character, and the second is a minus sign, acting on the q option. +Thus the effect here is to cancel one quantum of quietness. To cancel +both quiet flags, two (or more) minuses may be used: +.PP +.EX +unzip \-t\-\-q zipfile +unzip \-\-\-qt zipfile +.EE +.PP +(the two are equivalent). This may seem awkward +or confusing, but it is reasonably intuitive: just ignore the first +hyphen and go from there. It is also consistent with the behavior of +Unix \fInice\fP(1). +.PP +As suggested by the examples above, the default variable names are UNZIP_OPTS +for VMS (where the symbol used to install \fIunzip\fP as a foreign command +would otherwise be confused with the environment variable), and UNZIP +for all other operating systems. For compatibility with \fIzip\fP(1L), +UNZIPOPT is also accepted (don't ask). If both UNZIP and UNZIPOPT +are defined, however, UNZIP takes precedence. \fIunzip\fP's diagnostic +option (\fB\-v\fP with no zipfile name) can be used to check the values +of all four possible \fIunzip\fP and \fIzipinfo\fP environment variables. +.PP +The timezone variable (TZ) should be set according to the local timezone +in order for the \fB\-f\fP and \fB\-u\fP to operate correctly. See the +description of \fB\-f\fP above for details. This variable may also be +necessary to get timestamps of extracted files to be set correctly. +The WIN32 (Win9x/ME/NT4/2K/XP/2K3) port of \fIunzip\fP gets the timezone +configuration from the registry, assuming it is correctly set in the +Control Panel. The TZ variable is ignored for this port. +.PD +.\" ========================================================================= +.SH DECRYPTION +Encrypted archives are fully supported by Info-ZIP software, but due to +United States export restrictions, de-/encryption support might be disabled +in your compiled binary. However, since spring 2000, US export restrictions +have been liberated, and our source archives do now include full crypt code. +In case you need binary distributions with crypt support enabled, see the +file ``WHERE'' in any Info-ZIP source or binary distribution for locations +both inside and outside the US. +.PP +Some compiled versions of \fIunzip\fP may not support decryption. +To check a version for crypt support, either attempt to test or extract +an encrypted archive, or else check \fIunzip\fP's diagnostic +screen (see the \fB\-v\fP option above) for ``\fC[decryption]\fR'' as one +of the special compilation options. +.PP +As noted above, the \fB\-P\fP option may be used to supply a password on +the command line, but at a cost in security. The preferred decryption +method is simply to extract normally; if a zipfile member is encrypted, +\fIunzip\fP will prompt for the password without echoing what is typed. +\fIunzip\fP continues to use the same password as long as it appears to be +valid, by testing a 12-byte header on each file. The correct password will +always check out against the header, but there is a 1-in-256 chance that an +incorrect password will as well. (This is a security feature of the PKWARE +zipfile format; it helps prevent brute-force attacks that might otherwise +gain a large speed advantage by testing only the header.) In the case that +an incorrect password is given but it passes the header test anyway, either +an incorrect CRC will be generated for the extracted data or else \fIunzip\fP +will fail during the extraction because the ``decrypted'' bytes do not +constitute a valid compressed data stream. +.PP +If the first password fails the header check on some file, \fIunzip\fP will +prompt for another password, and so on until all files are extracted. If +a password is not known, entering a null password (that is, just a carriage +return or ``Enter'') is taken as a signal to skip all further prompting. +Only unencrypted files in the archive(s) will thereafter be extracted. (In +fact, that's not quite true; older versions of \fIzip\fP(1L) and +\fIzipcloak\fP(1L) allowed null passwords, so \fIunzip\fP checks each encrypted +file to see if the null password works. This may result in ``false positives'' +and extraction errors, as noted above.) +.PP +Archives encrypted with 8-bit passwords (for example, passwords with accented +European characters) may not be portable across systems and/or other +archivers. This problem stems from the use of multiple encoding methods for +such characters, including Latin-1 (ISO 8859-1) and OEM code page 850. +DOS \fIPKZIP\fP 2.04g uses the OEM code page; Windows \fIPKZIP\fP 2.50 +uses Latin-1 (and is therefore incompatible with DOS \fIPKZIP\fP); Info-ZIP +uses the OEM code page on DOS, OS/2 and Win3.x ports but ISO coding +(Latin-1 etc.) everywhere else; and Nico Mak's \fIWinZip\fP 6.x does not +allow 8-bit passwords at all. \fIUnZip\fP 5.3 (or newer) attempts to use +the default character set first (e.g., Latin-1), followed by the alternate +one (e.g., OEM code page) to test passwords. On EBCDIC systems, if both +of these fail, EBCDIC encoding will be tested as a last resort. (EBCDIC is +not tested on non-EBCDIC systems, because there are no known archivers +that encrypt using EBCDIC encoding.) ISO character encodings other than +Latin-1 are not supported. The new addition of (partially) Unicode (resp. +UTF-8) support in \fIUnZip\fP 6.0 has not yet been adapted to the encryption +password handling in \fIunzip\fP. On systems that use UTF-8 as native +character encoding, \fIunzip\fP simply tries decryption with the native +UTF-8 encoded password; the built-in attempts to check the password in +translated encoding have not yet been adapted for UTF-8 support and +will consequently fail. +.PD +.\" ========================================================================= +.SH EXAMPLES +To use \fIunzip\fP to extract all members of the archive \fIletters.zip\fP +into the current directory and subdirectories below it, creating any +subdirectories as necessary: +.PP +.EX +unzip letters +.EE +.PP +To extract all members of \fIletters.zip\fP into the current directory only: +.PP +.EX +unzip -j letters +.EE +.PP +To test \fIletters.zip\fP, printing only a summary message indicating +whether the archive is OK or not: +.PP +.EX +unzip -tq letters +.EE +.PP +To test \fIall\fP zipfiles in the current directory, printing only the +summaries: +.PP +.EX +unzip -tq \e*.zip +.EE +.PP +(The backslash before the asterisk is only required if the shell expands +wildcards, as in Unix; double quotes could have been used instead, as in +the source examples below.)\ \ To extract to standard output all members of +\fIletters.zip\fP whose names end in \fI.tex\fP, auto-converting to the +local end-of-line convention and piping the output into \fImore\fP(1): +.PP +.EX +unzip \-ca letters \e*.tex | more +.EE +.PP +To extract the binary file \fIpaper1.dvi\fP to standard output and pipe it +to a printing program: +.PP +.EX +unzip \-p articles paper1.dvi | dvips +.EE +.PP +To extract all FORTRAN and C source files--*.f, *.c, *.h, and Makefile--into +the /tmp directory: +.PP +.EX +unzip source.zip "*.[fch]" Makefile -d /tmp +.EE +.PP +(the double quotes are necessary only in Unix and only if globbing is turned +on). To extract all FORTRAN and C source files, regardless of case (e.g., +both *.c and *.C, and any makefile, Makefile, MAKEFILE or similar): +.PP +.EX +unzip \-C source.zip "*.[fch]" makefile -d /tmp +.EE +.PP +To extract any such files but convert any uppercase MS-DOS or VMS names to +lowercase and convert the line-endings of all of the files to the local +standard (without respect to any files that might be marked ``binary''): +.PP +.EX +unzip \-aaCL source.zip "*.[fch]" makefile -d /tmp +.EE +.PP +To extract only newer versions of the files already in the current +directory, without querying (NOTE: be careful of unzipping in one timezone a +zipfile created in another--ZIP archives other than those created by Zip 2.1 +or later contain no timezone information, and a ``newer'' file from an eastern +timezone may, in fact, be older): +.PP +.EX +unzip \-fo sources +.EE +.PP +To extract newer versions of the files already in the current directory and +to create any files not already there (same caveat as previous example): +.PP +.EX +unzip \-uo sources +.EE +.PP +To display a diagnostic screen showing which \fIunzip\fP and \fIzipinfo\fP +options are stored in environment variables, whether decryption support was +compiled in, the compiler with which \fIunzip\fP was compiled, etc.: +.PP +.EX +unzip \-v +.EE +.PP +In the last five examples, assume that UNZIP or UNZIP_OPTS is set to -q. +To do a singly quiet listing: +.PP +.EX +unzip \-l file.zip +.EE +.PP +To do a doubly quiet listing: +.PP +.EX +unzip \-ql file.zip +.EE +.PP +(Note that the ``\fC.zip\fR'' is generally not necessary.) To do a standard +listing: +.PP +.EX +unzip \-\-ql file.zip +.EE +or +.EX +unzip \-l\-q file.zip +.EE +or +.EX +unzip \-l\-\-q file.zip +.EE +\fR(Extra minuses in options don't hurt.) +.PD +.\" ========================================================================= +.SH TIPS +The current maintainer, being a lazy sort, finds it very useful to define +a pair of aliases: \fCtt\fR for ``\fCunzip \-tq\fR'' and \fCii\fR for +``\fCunzip \-Z\fR'' (or ``\fCzipinfo\fR''). One may then simply type +``\fCtt zipfile\fR'' to test an archive, something that is worth making a +habit of doing. With luck \fIunzip\fP will report ``\fCNo errors detected +in compressed data of zipfile.zip\fR,'' after which one may breathe a sigh +of relief. +.PP +The maintainer also finds it useful to set the UNZIP environment variable +to ``\fC\-aL\fR'' and is tempted to add ``\fC\-C\fR'' as well. His ZIPINFO +variable is set to ``\fC\-z\fR''. +.PD +.\" ========================================================================= +.SH DIAGNOSTICS +The exit status (or error level) approximates the exit codes defined by PKWARE +and takes on the following values, except under VMS: +.RS +.IP 0 +normal; no errors or warnings detected. +.IP 1 +one or more warning errors were encountered, but processing completed +successfully anyway. This includes zipfiles where one or more files +was skipped due to unsupported compression method or encryption with an +unknown password. +.IP 2 +a generic error in the zipfile format was detected. Processing may have +completed successfully anyway; some broken zipfiles created by other +archivers have simple work-arounds. +.IP 3 +a severe error in the zipfile format was detected. Processing probably +failed immediately. +.IP 4 +\fIunzip\fP was unable to allocate memory for one or more buffers during +program initialization. +.IP 5 +\fIunzip\fP was unable to allocate memory or unable to obtain a tty to read +the decryption password(s). +.IP 6 +\fIunzip\fP was unable to allocate memory during decompression to disk. +.IP 7 +\fIunzip\fP was unable to allocate memory during in-memory decompression. +.IP 8 +[currently not used] +.IP 9 +the specified zipfiles were not found. +.IP 10 +invalid options were specified on the command line. +.IP 11 +no matching files were found. +.IP 12 +invalid zip file with overlapped components (possible zip bomb). +.IP 50 +the disk is (or was) full during extraction. +.IP 51 +the end of the ZIP archive was encountered prematurely. +.IP 80 +the user aborted \fIunzip\fP prematurely with control-C (or similar) +.IP 81 +testing or extraction of one or more files failed due to unsupported +compression methods or unsupported decryption. +.IP 82 +no files were found due to bad decryption password(s). (If even one file is +successfully processed, however, the exit status is 1.) +.RE +.PP +VMS interprets standard Unix (or PC) return values as other, scarier-looking +things, so \fIunzip\fP instead maps them into VMS-style status codes. The +current mapping is as follows: 1 (success) for normal exit, 0x7fff0001 +for warning errors, and (0x7fff000? + 16*normal_unzip_exit_status) for all +other errors, where the `?' is 2 (error) for \fIunzip\fP values 2, 9-11 and +80-82, and 4 (fatal error) for the remaining ones (3-8, 50, 51). In addition, +there is a compilation option to expand upon this behavior: defining +RETURN_CODES results in a human-readable explanation of what the error +status means. +.PD +.\" ========================================================================= +.SH BUGS +Multi-part archives are not yet supported, except in conjunction with +\fIzip\fP. (All parts must be concatenated together in order, and then +``\fCzip \-F\fR'' (for \fIzip 2.x\fP) or ``\fCzip \-FF\fR'' (for +\fIzip 3.x\fP) must be performed on the concatenated archive in order to +``fix'' it. Also, \fIzip 3.0\fP and later can combine multi-part (split) +archives into a combined single-file archive using ``\fCzip \-s\- inarchive +-O outarchive\fR''. See the \fIzip 3\fP manual page for more information.) +This will definitely be corrected in the next major release. +.PP +Archives read from standard input are not yet supported, except with +\fIfunzip\fP (and then only the first member of the archive can be extracted). +.PP +Archives encrypted with 8-bit passwords (e.g., passwords with accented +European characters) may not be portable across systems and/or other +archivers. See the discussion in \fBDECRYPTION\fP above. +.PP +\fIunzip\fP's \fB\-M\fP (``more'') option tries to take into account automatic +wrapping of long lines. However, the code may fail to detect the correct +wrapping locations. First, TAB characters (and similar control sequences) are +not taken into account, they are handled as ordinary printable characters. +Second, depending on the actual system / OS port, \fIunzip\fP may not detect +the true screen geometry but rather rely on "commonly used" default dimensions. +The correct handling of tabs would require the implementation of a query for +the actual tabulator setup on the output console. +.PP +Dates, times and permissions of stored directories are not restored except +under Unix. (On Windows NT and successors, timestamps are now restored.) +.PP +[MS-DOS] When extracting or testing files from an archive on a defective +floppy diskette, if the ``Fail'' option is chosen from DOS's ``Abort, Retry, +Fail?'' message, older versions of \fIunzip\fP may hang the system, requiring +a reboot. This problem appears to be fixed, but control-C (or control-Break) +can still be used to terminate \fIunzip\fP. +.PP +Under DEC Ultrix, \fIunzip\fP would sometimes fail on long zipfiles (bad CRC, +not always reproducible). This was apparently due either to a hardware bug +(cache memory) or an operating system bug (improper handling of page faults?). +Since Ultrix has been abandoned in favor of Digital Unix (OSF/1), this may not +be an issue anymore. +.PP +[Unix] Unix special files such as FIFO buffers (named pipes), block devices +and character devices are not restored even if they are somehow represented +in the zipfile, nor are hard-linked files relinked. Basically the only file +types restored by \fIunzip\fP are regular files, directories and symbolic +(soft) links. +.PP +[OS/2] Extended attributes for existing directories are only updated if the +\fB\-o\fP (``overwrite all'') option is given. This is a limitation of the +operating system; because directories only have a creation time associated +with them, \fIunzip\fP has no way to determine whether the stored attributes +are newer or older than those on disk. In practice this may mean a two-pass +approach is required: first unpack the archive normally (with or without +freshening/updating existing files), then overwrite just the directory entries +(e.g., ``\fCunzip -o foo */\fR''). +.PP +[VMS] When extracting to another directory, only the \fI[.foo]\fP syntax is +accepted for the \fB\-d\fP option; the simple Unix \fIfoo\fP syntax is +silently ignored (as is the less common VMS \fIfoo.dir\fP syntax). +.PP +[VMS] When the file being extracted already exists, \fIunzip\fP's query only +allows skipping, overwriting or renaming; there should additionally be a +choice for creating a new version of the file. In fact, the ``overwrite'' +choice does create a new version; the old version is not overwritten or +deleted. +.PD +.\" ========================================================================= +.SH "SEE ALSO" +\fIfunzip\fP(1L), \fIzip\fP(1L), \fIzipcloak\fP(1L), \fIzipgrep\fP(1L), +\fIzipinfo\fP(1L), \fIzipnote\fP(1L), \fIzipsplit\fP(1L) +.PD +.\" ========================================================================= +.SH URL +The Info-ZIP home page is currently at +.EX +\fChttp://www.info-zip.org/pub/infozip/\fR +.EE +or +.EX +\fCftp://ftp.info-zip.org/pub/infozip/\fR . +.EE +.PD +.\" ========================================================================= +.SH AUTHORS +The primary Info-ZIP authors (current semi-active members of the Zip-Bugs +workgroup) are: Ed Gordon (Zip, general maintenance, shared code, Zip64, +Win32, Unix, Unicode); Christian Spieler (UnZip maintenance coordination, +VMS, MS-DOS, Win32, shared code, general Zip and UnZip integration and +optimization); Onno van der Linden (Zip); Mike White (Win32, Windows GUI, +Windows DLLs); Kai Uwe Rommel (OS/2, Win32); Steven M. Schweda (VMS, Unix, +support of new features); 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 maintenance); Steve Salisbury (Win32); +Steve Miller (Windows CE GUI), Johnny Lee (MS-DOS, Win32, Zip64); and Dave +Smith (Tandem NSK). +.PP +The following people were former members of the Info-ZIP development group +and provided major contributions to key parts of the current code: +Greg ``Cave Newt'' Roelofs (UnZip, unshrink decompression); +Jean-loup Gailly (deflate compression); +Mark Adler (inflate decompression, fUnZip). +.PP +The author of the original unzip code upon which Info-ZIP's was based +is Samuel H. Smith; Carl Mascott did the first Unix port; and David P. +Kirschbaum organized and led Info-ZIP in its early days with Keith Petersen +hosting the original mailing list at WSMR-SimTel20. The full list of +contributors to UnZip has grown quite large; please refer to the CONTRIBS +file in the UnZip source distribution for a relatively complete version. +.PD +.\" ========================================================================= +.SH VERSIONS +.ta \w'vx.xxnn'u +\w'fall 1989'u+3n +.PD 0 +.IP "v1.2\t15 Mar 89" \w'\t\t'u +Samuel H. Smith +.IP "v2.0\t\ 9 Sep 89" +Samuel H. Smith +.IP "v2.x\tfall 1989" +many Usenet contributors +.IP "v3.0\t\ 1 May 90" +Info-ZIP (DPK, consolidator) +.IP "v3.1\t15 Aug 90" +Info-ZIP (DPK, consolidator) +.IP "v4.0\t\ 1 Dec 90" +Info-ZIP (GRR, maintainer) +.IP "v4.1\t12 May 91" +Info-ZIP +.IP "v4.2\t20 Mar 92" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.0\t21 Aug 92" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.01\t15 Jan 93" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.1\t\ 7 Feb 94" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.11\t\ 2 Aug 94" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.12\t28 Aug 94" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.2\t30 Apr 96" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.3\t22 Apr 97" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.31\t31 May 97" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.32\t\ 3 Nov 97" +Info-ZIP (Zip-Bugs subgroup, GRR) +.IP "v5.4\t28 Nov 98" +Info-ZIP (Zip-Bugs subgroup, SPC) +.IP "v5.41\t16 Apr 00" +Info-ZIP (Zip-Bugs subgroup, SPC) +.IP "v5.42\t14 Jan 01" +Info-ZIP (Zip-Bugs subgroup, SPC) +.IP "v5.5\t17 Feb 02" +Info-ZIP (Zip-Bugs subgroup, SPC) +.IP "v5.51\t22 May 04" +Info-ZIP (Zip-Bugs subgroup, SPC) +.IP "v5.52\t28 Feb 05" +Info-ZIP (Zip-Bugs subgroup, SPC) +.IP "v6.0\t20 Apr 09" +Info-ZIP (Zip-Bugs subgroup, SPC) +.PD |