unzip.doc
资源名称:unzip540.zip [点击查看]
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:45k
源码类别:
压缩解压
开发平台:
MultiPlatform
- UNZIP(1L) UNZIP(1L)
- NAME
- unzip - list, test and extract compressed files in a ZIP
- archive
- SYNOPSIS
- unzip [-Z] [-cflptuvz[abjnoqsCLMVX$]] file[.zip]
- [file(s) ...] [-x xfile(s) ...] [-d exdir]
- DESCRIPTION
- unzip 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, zip(1L), cre-
- ates ZIP archives; both programs are compatible with
- archives created by PKWARE's PKZIP and PKUNZIP for MS-DOS,
- but in many cases the program options or default behaviors
- differ.
- ARGUMENTS
- file[.zip]
- Path of the ZIP archive(s). If the file specifica-
- tion 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 Unix egrep(1) (regular) expressions and
- may contain:
- * matches a sequence of 0 or more characters
- ? matches exactly 1 character
- [...] 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
- except the characters inside the brackets is
- considered a match).
- (Be sure to quote any character that might other-
- wise 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 .zip is appended. Note that self-extracting
- ZIP files are supported, as with any other ZIP
- archive; just specify the .exe suffix (if any)
- explicitly.
- Info-ZIP 28 November 1998 (v5.4) 1
- UNZIP(1L) UNZIP(1L)
- [file(s)]
- An optional list of archive members to be pro-
- cessed, separated by spaces. (VMS versions com-
- piled with VMSCLI defined must delimit files with
- commas instead. See -v in OPTIONS below.) Regular
- expressions (wildcards) may be used to match multi-
- ple members; see above. Again, be sure to quote
- expressions that would otherwise be expanded or
- modified by the operating system.
- [-x xfile(s)]
- An optional list of archive members to be excluded
- from processing. Since wildcard characters match
- directory separators (`/'), this option may be used
- to exclude any files that are in subdirectories.
- For example, ``unzip foo *.[ch] -x */*'' would
- extract all C source files in the main directory,
- but none in any subdirectories. Without the -x
- option, all C source files in all directories
- within the zipfile would be extracted.
- [-d exdir]
- An optional directory to which to extract files.
- By default, all files and subdirectories are recre-
- ated in the current directory; the -d option allows
- extraction in an arbitrary directory (always assum-
- ing one has permission to write to the directory).
- This option need not appear at the end of the com-
- mand line; it is also accepted before the zipfile
- specification (with the normal options), immedi-
- ately after the zipfile specification, or between
- the file(s) and the -x 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 partic-
- ular, ``-d ~'' (tilde) is expanded by Unix C shells
- into the name of the user's home directory, but
- ``-d~'' is treated as a literal subdirectory ``~''
- of the current directory.
- OPTIONS
- Note that, in order to support obsolescent hardware,
- unzip's usage screen is limited to 22 or 23 lines and
- should therefore be considered only a reminder of the
- basic unzip syntax rather than an exhaustive list of all
- possible flags. The exhaustive list follows:
- -Z zipinfo(1L) mode. If the first option on the com-
- mand line is -Z, the remaining options are taken to
- be zipinfo(1L) options. See the appropriate manual
- page for a description of these options.
- -A [OS/2, Unix DLL] print extended help for the DLL's
- programming interface (API).
- Info-ZIP 28 November 1998 (v5.4) 2
- UNZIP(1L) UNZIP(1L)
- -c extract files to stdout/screen (``CRT''). This
- option is similar to the -p option except that the
- name of each file is printed as it is extracted,
- the -a option is allowed, and ASCII-EBCDIC conver-
- sion is automatically performed if appropriate.
- This option is not listed in the unzip usage
- screen.
- -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 unzip queries
- before overwriting, but the -o 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 -f and
- -u to work properly (under Unix the variable is
- usually set automatically). The reasons for this
- are somewhat subtle but have to do with the differ-
- ences 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 auto-
- matic adjustment for Daylight Savings Time or
- ``summer time'').
- -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 -l 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 indi-
- vidual 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 -L option was given, the filename is converted
- to lowercase and is prefixed with a caret (^).
- -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).
- -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.
- -T [most OSes] set the timestamp on the archive(s) to
- that of the newest file in each one. This corre-
- sponds to zip's -go option except that it can be
- used on wildcard zipfiles (e.g., ``unzip -T
- Info-ZIP 28 November 1998 (v5.4) 3
- UNZIP(1L) UNZIP(1L)
- *.zip'') and is much faster.
- -u update existing files and create new ones if
- needed. This option performs the same function as
- the -f 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 -f above for informa-
- tion on setting the timezone properly.
- -v be verbose or print 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, -v lists archive files verbosely,
- adding to the basic -l info the compression method,
- compressed size, compression ratio and 32-bit CRC.
- When no zipfile is specified (that is, the complete
- command is simply ``unzip -v''), a diagnostic
- screen is printed. In addition to the normal
- header with release date and version, unzip lists
- the home Info-ZIP ftp site and where to find a list
- of other ftp and non-ftp sites; the target operat-
- ing 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 DECRYPTION
- below); and any options stored in environment vari-
- ables that might do the same (see ENVIRONMENT
- OPTIONS below). As a modifier it works in conjunc-
- tion with other options (e.g., -t) to produce more
- verbose or debugging output; this is not yet fully
- implemented but will be in future releases.
- -z display only the archive comment.
- MODIFIERS
- -a convert text files. Ordinarily all files are
- extracted exactly as they are stored (as ``binary''
- files). The -a option causes files identified by
- zip as text files (those with the `t' label in zip-
- info 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 zip's
- identification of text files is by no means
- Info-ZIP 28 November 1998 (v5.4) 4
- UNZIP(1L) UNZIP(1L)
- perfect; some ``text'' files may actually be binary
- and vice versa. unzip therefore prints ``[text]''
- or ``[binary]'' as a visual check for each file it
- extracts when using the -a option. The -aa option
- forces all files to be extracted as text, regard-
- less of the supposed file type.
- -b [non-VMS] treat all files as binary (no text con-
- versions). This is a shortcut for ---a.
- -b [VMS] auto-convert binary files (see -a above) to
- fixed-length, 512-byte record format. Doubling the
- option (-bb) forces all files to be extracted in
- this format.
- -B [Unix only, and only if compiled with UNIXBACKUP
- defined] save a backup copy of each overwritten
- file with a tilde appended (e.g., the old copy of
- ``foo'' is renamed to ``foo~''). This is similar
- to the default behavior of emacs(1) in many loca-
- tions.
- -C match filenames case-insensitively. unzip's phi-
- losophy is ``you get what you ask for'' (this is
- also responsible for the -L/-U change; see the rel-
- evant options below). Because some file systems
- are fully case-sensitive (notably those under the
- Unix operating system) and because both ZIP
- archives and unzip itself are portable across plat-
- forms, unzip's default behavior is to match both
- wildcard and literal filenames case-sensitively.
- That is, specifying ``makefile'' on the command
- line will only match ``makefile'' in the archive,
- not ``Makefile'' or ``MAKEFILE'' (and similarly for
- wildcard specifications). Since this does not cor-
- respond to the behavior of many other operat-
- ing/file systems (for example, OS/2 HPFS, which
- preserves mixed case but is not sensitive to it),
- the -C option may be used to force all filename
- matches to be case-insensitive. In the example
- above, all three files would then match ``make-
- file'' (or ``make*'', or similar). The -C option
- affects files in both the normal file list and the
- excluded-file list (xlist).
- -E [MacOS only] display contents of MacOS extra field
- during restore operation.
- -F [Acorn only] suppress removal of NFS filetype
- extension from stored filenames.
- -F [Unix only, and only if compiled with
- ACORN_FTYPE_NFS defined] translate filetype infor-
- mation from ACORN RISC OS extra field blocks into a
- Info-ZIP 28 November 1998 (v5.4) 5
- UNZIP(1L) UNZIP(1L)
- 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.)
- -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.
- -j junk paths. The archive's directory structure is
- not recreated; all files are deposited in the
- extraction directory (by default, the current one).
- -J [BeOS only] junk file attributes. The file's BeOS
- file attributes are not restored, just the file's
- data.
- -J [MacOS only] ignore MacOS extra fields. All Macin-
- tosh specific info is skipped. Data-fork and
- resource-fork are restored as separate files.
- -L convert to lowercase any filename originating on an
- uppercase-only operating system or file system.
- (This was unzip's default behavior in releases
- prior to 5.11; the new default behavior is identi-
- cal to the old behavior with the -U 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 unzip 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.
- -M pipe all output through an internal pager similar
- to the Unixmore(1) command. At the end of a
- screenful of output, unzip pauses with a
- ``--More--'' prompt; the next screenful may be
- viewed by pressing the Enter (Return) key or the
- space bar. unzip can be terminated by pressing the
- ``q'' key and, on some systems, the Enter/Return
- key. Unlike Unix more(1), there is no forward-
- searching or editing capability. Also, unzip
- 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
- Info-ZIP 28 November 1998 (v5.4) 6
- UNZIP(1L) UNZIP(1L)
- being viewed. On some systems the number of avail-
- able lines on the screen is not detected, in which
- case unzip assumes the height is 24 lines.
- -n never overwrite existing files. If a file already
- exists, skip the extraction of that file without
- prompting. By default unzip 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.
- -N [Amiga] extract file comments as Amiga filenotes.
- File comments are created with the -c option of
- zip(1L), or with the -N option of the Amiga port of
- zip(1L), which stores filenotes as comments.
- -o overwrite existing files without prompting. This
- is a dangerous option, so use it with care. (It is
- often used with -f, however, and is the only way to
- overwrite directory EAs under OS/2.)
- -P password
- use password to decrypt encrypted zipfile entries
- (if any). THIS IS INSECURE! Many multi-user oper-
- ating 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.)
- -q perform operations quietly (-qq = even quieter).
- Ordinarily unzip 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 -q[q] options suppress the
- printing of some or all of these messages.
- -s [OS/2, NT, MS-DOS] convert spaces in filenames to
- underscores. Since all PC operating systems allow
- spaces in filenames, unzip by default extracts
- filenames with spaces intact (e.g.,
- ``EA DATA. SF''). This can be awkward, however,
- since MS-DOS in particular does not gracefully sup-
- port spaces in filenames. Conversion of spaces to
- Info-ZIP 28 November 1998 (v5.4) 7
- UNZIP(1L) UNZIP(1L)
- underscores can eliminate the awkwardness in some
- cases.
- -U (obsolete; to be removed in a future release) leave
- filenames uppercase if created under MS-DOS, VMS,
- etc. See -L above.
- -V retain (VMS) file version numbers. VMS files can
- be stored with a version number, in the format
- file.ext;##. By default the ``;##'' version num-
- bers 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.)
- -X [VMS, Unix, OS/2, NT] restore owner/protection info
- (UICs) 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
- (-XX) under NT instructs unzip 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.]
- -$ [MS-DOS, OS/2, NT] restore the volume label if the
- extraction medium is removable (e.g., a diskette).
- Doubling the option (-$$) allows fixed media (hard
- disks) to be labelled as well. By default, volume
- labels are ignored.
- ENVIRONMENT OPTIONS
- unzip'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 -a,
- -L, -C, -q, -o, or -n modifiers: make unzip 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 over-
- write or never overwrite files as it extracts them. For
- example, to make unzip act as quietly as possible, only
- Info-ZIP 28 November 1998 (v5.4) 8
- UNZIP(1L) UNZIP(1L)
- reporting errors, one would use one of the following com-
- mands:
- UNZIP=-qq; export UNZIP Unix Bourne shell
- setenv UNZIP -qq Unix C shell
- set UNZIP=-qq OS/2 or MS-DOS
- define UNZIP_OPTS "-qq" VMS (quotes for lowercase)
- 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
- unzip --q[other options] zipfile
- 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:
- unzip -t--q zipfile
- unzip ---qt zipfile
- (the two are equivalent). This may seem awkward or con-
- fusing, but it is reasonably intuitive: just ignore the
- first hyphen and go from there. It is also consistent
- with the behavior of Unix nice(1).
- As suggested by the examples above, the default variable
- names are UNZIP_OPTS for VMS (where the symbol used to
- install unzip as a foreign command would otherwise be con-
- fused with the environment variable), and UNZIP for all
- other operating systems. For compatibility with zip(1L),
- UNZIPOPT is also accepted (don't ask). If both UNZIP and
- UNZIPOPT are defined, however, UNZIP takes precedence.
- unzip's diagnostic option (-v with no zipfile name) can be
- used to check the values of all four possible unzip and
- zipinfo environment variables.
- The timezone variable (TZ) should be set according to the
- local timezone in order for the -f and -u to operate cor-
- rectly. See the description of -f above for details.
- This variable may also be necessary in order for times-
- tamps on extracted files to be set correctly. Under Win-
- dows 95/NT unzip should know the correct timezone even if
- TZ is unset, assuming the timezone is correctly set in the
- Control Panel.
- DECRYPTION
- Encrypted archives are fully supported by Info-ZIP soft-
- ware, but due to United States export restrictions, the
- Info-ZIP 28 November 1998 (v5.4) 9
- UNZIP(1L) UNZIP(1L)
- encryption and decryption sources are not packaged with
- the regular unzip and zip distributions. Since the crypt
- sources were written by Europeans, however, they are
- freely available at sites throughout the world; see the
- file ``WHERE'' in any Info-ZIP source or binary distribu-
- tion for locations both inside and outside the US.
- Because of the separate distribution, not all compiled
- versions of unzip support decryption. To check a version
- for crypt support, either attempt to test or extract an
- encrypted archive, or else check unzip's diagnostic screen
- (see the -v option above) for ``[decryption]'' as one of
- the special compilation options.
- As noted above, the -P 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 nor-
- mally; if a zipfile member is encrypted, unzip will prompt
- for the password without echoing what is typed. unzip
- 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 incor-
- rect password is given but it passes the header test any-
- way, either an incorrect CRC will be generated for the
- extracted data or else unzip will fail during the extrac-
- tion because the ``decrypted'' bytes do not constitute a
- valid compressed data stream.
- If the first password fails the header check on some file,
- unzip 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 zip(1L) and zipcloak(1L) allowed null
- passwords, so unzip checks each encrypted file to see if
- the null password works. This may result in ``false posi-
- tives'' and extraction errors, as noted above.)
- 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 PKZIP 2.04g uses the OEM code
- page; Windows PKZIP 2.50 uses Latin-1 (and is therefore
- incompatible with DOS PKZIP); Info-ZIP uses the OEM code
- page on DOS, OS/2 and Win3.x ports but Latin-1 everywhere
- Info-ZIP 28 November 1998 (v5.4) 10
- UNZIP(1L) UNZIP(1L)
- else; and Nico Mak's WinZip 6.x does not allow 8-bit pass-
- words at all. UnZip 5.3 attempts to use the default char-
- acter 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. (Since there are no known
- archivers that encrypt using EBCDIC encoding, EBCDIC is
- not tested on non-EBCDIC systems.) ISO character encod-
- ings other than Latin-1 are not supported.
- EXAMPLES
- To use unzip to extract all members of the archive let-
- ters.zip into the current directory and subdirectories
- below it, creating any subdirectories as necessary:
- unzip letters
- To extract all members of letters.zip into the current
- directory only:
- unzip -j letters
- To test letters.zip, printing only a summary message indi-
- cating whether the archive is OK or not:
- unzip -tq letters
- To test all zipfiles in the current directory, printing
- only the summaries:
- unzip -tq *.zip
- (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 let-
- ters.zip whose names end in .tex, auto-converting to the
- local end-of-line convention and piping the output into
- more(1):
- unzip -ca letters *.tex | more
- To extract the binary file paper1.dvi to standard output
- and pipe it to a printing program:
- unzip -p articles paper1.dvi | dvips
- To extract all FORTRAN and C source files--*.f, *.c, *.h,
- and Makefile--into the /tmp directory:
- unzip source.zip "*.[fch]" Makefile -d /tmp
- (the double quotes are necessary only in Unix and only if
- globbing is turned on). To extract all FORTRAN and C
- Info-ZIP 28 November 1998 (v5.4) 11
- UNZIP(1L) UNZIP(1L)
- source files, regardless of case (e.g., both *.c and *.C,
- and any makefile, Makefile, MAKEFILE or similar):
- unzip -C source.zip "*.[fch]" makefile -d /tmp
- 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''):
- unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
- 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):
- unzip -fo sources
- To extract newer versions of the files already in the cur-
- rent directory and to create any files not already there
- (same caveat as previous example):
- unzip -uo sources
- To display a diagnostic screen showing which unzip and
- zipinfo options are stored in environment variables,
- whether decryption support was compiled in, the compiler
- with which unzip was compiled, etc.:
- unzip -v
- In the last five examples, assume that UNZIP or UNZIP_OPTS
- is set to -q. To do a singly quiet listing:
- unzip -l file.zip
- To do a doubly quiet listing:
- unzip -ql file.zip
- (Note that the ``.zip'' is generally not necessary.) To
- do a standard listing:
- unzip --ql file.zip
- or
- unzip -l-q file.zip
- or
- unzip -l--q file.zip (extra minuses don't hurt)
- TIPS
- The current maintainer, being a lazy sort, finds it very
- Info-ZIP 28 November 1998 (v5.4) 12
- UNZIP(1L) UNZIP(1L)
- useful to define a pair of aliases: tt for ``unzip -tq''
- and ii for ``unzip -Z'' (or ``zipinfo''). One may then
- simply type ``tt zipfile'' to test an archive, something
- that is worth making a habit of doing. With luck unzip
- will report ``No errors detected in compressed data of
- zipfile.zip,'' after which one may breathe a sigh of
- relief.
- The maintainer also finds it useful to set the UNZIP envi-
- ronment variable to ``-aL'' and is tempted to add ``-C''
- as well. His ZIPINFO variable is set to ``-z''.
- DIAGNOSTICS
- The exit status (or error level) approximates the exit
- codes defined by PKWARE and takes on the following values,
- except under VMS:
- 0 normal; no errors or warnings detected.
- 1 one or more warning errors were encountered,
- but processing completed successfully any-
- way. This includes zipfiles where one or
- more files was skipped due to unsupported
- compression method or encryption with an
- unknown password.
- 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.
- 3 a severe error in the zipfile format was
- detected. Processing probably failed imme-
- diately.
- 4 unzip was unable to allocate memory for one
- or more buffers during program initializa-
- tion.
- 5 unzip was unable to allocate memory or
- unable to obtain a tty to read the decryp-
- tion password(s).
- 6 unzip was unable to allocate memory during
- decompression to disk.
- 7 unzip was unable to allocate memory during
- in-memory decompression.
- 8 [currently not used]
- 9 the specified zipfiles were not found.
- Info-ZIP 28 November 1998 (v5.4) 13
- UNZIP(1L) UNZIP(1L)
- 10 invalid options were specified on the com-
- mand line.
- 11 no matching files were found.
- 50 the disk is (or was) full during extraction.
- 51 the end of the ZIP archive was encountered
- prematurely.
- 80 the user aborted unzip prematurely with con-
- trol-C (or similar)
- 81 testing or extraction of one or more files
- failed due to unsupported compression meth-
- ods or unsupported decryption.
- 82 no files were found due to bad decryption
- password(s). (If even one file is success-
- fully processed, however, the exit status is
- 1.)
- VMS interprets standard Unix (or PC) return values as
- other, scarier-looking things, so unzip 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*nor-
- mal_unzip_exit_status) for all other errors, where the `?'
- is 2 (error) for unzip 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.
- BUGS
- Multi-part archives are not yet supported, except in con-
- junction with zip. (All parts must be concatenated
- together in order, and then ``zip -F'' must be performed
- on the concatenated archive in order to ``fix'' it.) This
- will definitely be corrected in the next major release.
- Archives read from standard input are not yet supported,
- except with funzip (and then only the first member of the
- archive can be extracted).
- 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 DECRYPTION above.
- unzip's -M (``more'') option is overly simplistic in its
- handling of screen output; as noted above, it fails to
- detect the wrapping of long lines and may thereby cause
- lines at the top of the screen to be scrolled off before
- Info-ZIP 28 November 1998 (v5.4) 14
- UNZIP(1L) UNZIP(1L)
- being read. unzip should detect and treat each occurrence
- of line-wrap as one additional line printed. This
- requires knowledge of the screen's width as well as its
- height. In addition, unzip should detect the true screen
- geometry on all systems.
- Dates, times and permissions of stored directories are not
- restored except under Unix.
- [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 unzip may hang the system, requiring a reboot.
- This problem appears to be fixed, but control-C (or con-
- trol-Break) can still be used to terminate unzip.
- Under DEC Ultrix, unzip would sometimes fail on long zip-
- files (bad CRC, not always reproducible). This was appar-
- ently 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.
- [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 zip-
- file, nor are hard-linked files relinked. Basically the
- only file types restored by unzip are regular files,
- directories and symbolic (soft) links.
- [OS/2] Extended attributes for existing directories are
- only updated if the -o (``overwrite all'') option is
- given. This is a limitation of the operating system;
- because directories only have a creation time associated
- with them, unzip 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 fresh-
- ening/updating existing files), then overwrite just the
- directory entries (e.g., ``unzip -o foo */'').
- [VMS] When extracting to another directory, only the
- [.foo] syntax is accepted for the -d option; the simple
- Unix foo syntax is silently ignored (as is the less common
- VMS foo.dir syntax).
- [VMS] When the file being extracted already exists,
- unzip's query only allows skipping, overwriting or renam-
- ing; 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.
- Info-ZIP 28 November 1998 (v5.4) 15
- UNZIP(1L) UNZIP(1L)
- SEE ALSO
- funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zip-
- info(1L), zipnote(1L), zipsplit(1L)
- URL
- The Info-ZIP home page is currently at
- http://www.cdrom.com/pub/infozip/ .
- AUTHORS
- The primary Info-ZIP authors (current semi-active members
- of the Zip-Bugs workgroup) are: Greg ``Cave Newt''
- Roelofs (UnZip); Onno van der Linden (Zip); Jean-loup
- Gailly (compression); Mark Adler (decompression, fUnZip);
- Christian Spieler (UnZip maintance coordination, VMS, MS-
- DOS, Windows 95, NT, shared code, general Zip and UnZip
- integration and optimization); Mike White (Windows GUI,
- Windows DLLs); Kai Uwe Rommel (OS/2); Paul Kienitz (Amiga,
- Windows 95); 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); Steve Salisbury (Windows 95, NT); Steve
- Miller (Windows CE GUI), Johnny Lee (MS-DOS, Windows 95,
- NT); and Dave Smith (Tandem NSK). The author of the orig-
- inal 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.
- VERSIONS
- v1.2 15 Mar 89 Samuel H. Smith
- v2.0 9 Sep 89 Samuel H. Smith
- v2.x fall 1989 many Usenet contributors
- v3.0 1 May 90 Info-ZIP (DPK, consolidator)
- v3.1 15 Aug 90 Info-ZIP (DPK, consolidator)
- v4.0 1 Dec 90 Info-ZIP (GRR, maintainer)
- v4.1 12 May 91 Info-ZIP
- v4.2 20 Mar 92 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.0 21 Aug 92 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.01 15 Jan 93 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.1 7 Feb 94 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.11 2 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.12 28 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.2 30 Apr 96 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.3 22 Apr 97 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.31 31 May 97 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.32 3 Nov 97 Info-ZIP (Zip-Bugs subgroup, GRR)
- v5.4 28 Nov 98 Info-ZIP (Zip-Bugs subgroup, SPC)
- Info-ZIP 28 November 1998 (v5.4) 16