5 unzip - list, test and extract compressed files in a ZIP
9 unzip [-Z] [-cflptuvz[abjnoqsCLMVX$/:]] file[.zip]
10 [file(s) ...] [-x xfile(s) ...] [-d exdir]
13 unzip will list, test, or extract files from a ZIP
14 archive, commonly found on MS-DOS systems. The default
15 behavior (with no options) is to extract into the current
16 directory (and subdirectories below it) all files from the
17 specified ZIP archive. A companion program, zip(1L), cre-
18 ates ZIP archives; both programs are compatible with
19 archives created by PKWARE's PKZIP and PKUNZIP for MS-DOS,
20 but in many cases the program options or default behaviors
25 Path of the ZIP archive(s). If the file specifica-
26 tion is a wildcard, each matching file is processed
27 in an order determined by the operating system (or
28 file system). Only the filename can be a wildcard;
29 the path itself cannot. Wildcard expressions are
30 similar to those supported in commonly used Unix
31 shells (sh, ksh, csh) and may contain:
33 * matches a sequence of 0 or more characters
35 ? matches exactly 1 character
37 [...] matches any single character found inside
38 the brackets; ranges are specified by a
39 beginning character, a hyphen, and an ending
40 character. If an exclamation point or a
41 caret (`!' or `^') follows the left bracket,
42 then the range of characters within the
43 brackets is complemented (that is, anything
44 except the characters inside the brackets is
47 (Be sure to quote any character that might other-
48 wise be interpreted or modified by the operating
49 system, particularly under Unix and VMS.) If no
50 matches are found, the specification is assumed to
51 be a literal filename; and if that also fails, the
52 suffix .zip is appended. Note that self-extracting
53 ZIP files are supported, as with any other ZIP
54 archive; just specify the .exe suffix (if any)
57 Info-ZIP 17 February 2002 (v5.5) 1
62 An optional list of archive members to be pro-
63 cessed, separated by spaces. (VMS versions com-
64 piled with VMSCLI defined must delimit files with
65 commas instead. See -v in OPTIONS below.) Regular
66 expressions (wildcards) may be used to match multi-
67 ple members; see above. Again, be sure to quote
68 expressions that would otherwise be expanded or
69 modified by the operating system.
72 An optional list of archive members to be excluded
73 from processing. Since wildcard characters match
74 directory separators (`/'), this option may be used
75 to exclude any files that are in subdirectories.
76 For example, ``unzip foo *.[ch] -x */*'' would
77 extract all C source files in the main directory,
78 but none in any subdirectories. Without the -x
79 option, all C source files in all directories
80 within the zipfile would be extracted.
83 An optional directory to which to extract files.
84 By default, all files and subdirectories are recre-
85 ated in the current directory; the -d option allows
86 extraction in an arbitrary directory (always assum-
87 ing one has permission to write to the directory).
88 This option need not appear at the end of the com-
89 mand line; it is also accepted before the zipfile
90 specification (with the normal options), immedi-
91 ately after the zipfile specification, or between
92 the file(s) and the -x option. The option and
93 directory may be concatenated without any white
94 space between them, but note that this may cause
95 normal shell behavior to be suppressed. In partic-
96 ular, ``-d ~'' (tilde) is expanded by Unix C shells
97 into the name of the user's home directory, but
98 ``-d~'' is treated as a literal subdirectory ``~''
99 of the current directory.
102 Note that, in order to support obsolescent hardware,
103 unzip's usage screen is limited to 22 or 23 lines and
104 should therefore be considered only a reminder of the
105 basic unzip syntax rather than an exhaustive list of all
106 possible flags. The exhaustive list follows:
108 -Z zipinfo(1L) mode. If the first option on the com-
109 mand line is -Z, the remaining options are taken to
110 be zipinfo(1L) options. See the appropriate manual
111 page for a description of these options.
113 -A [OS/2, Unix DLL] print extended help for the DLL's
114 programming interface (API).
116 Info-ZIP 17 February 2002 (v5.5) 2
120 -c extract files to stdout/screen (``CRT''). This
121 option is similar to the -p option except that the
122 name of each file is printed as it is extracted,
123 the -a option is allowed, and ASCII-EBCDIC conver-
124 sion is automatically performed if appropriate.
125 This option is not listed in the unzip usage
128 -f freshen existing files, i.e., extract only those
129 files that already exist on disk and that are newer
130 than the disk copies. By default unzip queries
131 before overwriting, but the -o option may be used
132 to suppress the queries. Note that under many
133 operating systems, the TZ (timezone) environment
134 variable must be set correctly in order for -f and
135 -u to work properly (under Unix the variable is
136 usually set automatically). The reasons for this
137 are somewhat subtle but have to do with the differ-
138 ences between DOS-format file times (always local
139 time) and Unix-format times (always in GMT/UTC) and
140 the necessity to compare the two. A typical TZ
141 value is ``PST8PDT'' (US Pacific time with auto-
142 matic adjustment for Daylight Savings Time or
145 -l list archive files (short format). The names,
146 uncompressed file sizes and modification dates and
147 times of the specified files are printed, along
148 with totals for all files specified. If UnZip was
149 compiled with OS2_EAS defined, the -l option also
150 lists columns for the sizes of stored OS/2 extended
151 attributes (EAs) and OS/2 access control lists
152 (ACLs). In addition, the zipfile comment and indi-
153 vidual file comments (if any) are displayed. If a
154 file was archived from a single-case file system
155 (for example, the old MS-DOS FAT file system) and
156 the -L option was given, the filename is converted
157 to lowercase and is prefixed with a caret (^).
159 -p extract files to pipe (stdout). Nothing but the
160 file data is sent to stdout, and the files are
161 always extracted in binary format, just as they are
162 stored (no conversions).
164 -t test archive files. This option extracts each
165 specified file in memory and compares the CRC
166 (cyclic redundancy check, an enhanced checksum) of
167 the expanded file with the original file's stored
170 -T [most OSes] set the timestamp on the archive(s) to
171 that of the newest file in each one. This corre-
172 sponds to zip's -go option except that it can be
173 used on wildcard zipfiles (e.g., ``unzip -T
175 Info-ZIP 17 February 2002 (v5.5) 3
179 \*.zip'') and is much faster.
181 -u update existing files and create new ones if
182 needed. This option performs the same function as
183 the -f option, extracting (with query) files that
184 are newer than those with the same name on disk,
185 and in addition it extracts those files that do not
186 already exist on disk. See -f above for informa-
187 tion on setting the timezone properly.
189 -v be verbose or print diagnostic version info. This
190 option has evolved and now behaves as both an
191 option and a modifier. As an option it has two
192 purposes: when a zipfile is specified with no
193 other options, -v lists archive files verbosely,
194 adding to the basic -l info the compression method,
195 compressed size, compression ratio and 32-bit CRC.
196 When no zipfile is specified (that is, the complete
197 command is simply ``unzip -v''), a diagnostic
198 screen is printed. In addition to the normal
199 header with release date and version, unzip lists
200 the home Info-ZIP ftp site and where to find a list
201 of other ftp and non-ftp sites; the target operat-
202 ing system for which it was compiled, as well as
203 (possibly) the hardware on which it was compiled,
204 the compiler and version used, and the compilation
205 date; any special compilation options that might
206 affect the program's operation (see also DECRYPTION
207 below); and any options stored in environment vari-
208 ables that might do the same (see ENVIRONMENT
209 OPTIONS below). As a modifier it works in conjunc-
210 tion with other options (e.g., -t) to produce more
211 verbose or debugging output; this is not yet fully
212 implemented but will be in future releases.
214 -z display only the archive comment.
217 -a convert text files. Ordinarily all files are
218 extracted exactly as they are stored (as ``binary''
219 files). The -a option causes files identified by
220 zip as text files (those with the `t' label in zip-
221 info listings, rather than `b') to be automatically
222 extracted as such, converting line endings, end-of-
223 file characters and the character set itself as
224 necessary. (For example, Unix files use line feeds
225 (LFs) for end-of-line (EOL) and have no end-of-file
226 (EOF) marker; Macintoshes use carriage returns
227 (CRs) for EOLs; and most PC operating systems use
228 CR+LF for EOLs and control-Z for EOF. In addition,
229 IBM mainframes and the Michigan Terminal System use
230 EBCDIC rather than the more common ASCII character
231 set, and NT supports Unicode.) Note that zip's
232 identification of text files is by no means
234 Info-ZIP 17 February 2002 (v5.5) 4
238 perfect; some ``text'' files may actually be binary
239 and vice versa. unzip therefore prints ``[text]''
240 or ``[binary]'' as a visual check for each file it
241 extracts when using the -a option. The -aa option
242 forces all files to be extracted as text, regard-
243 less of the supposed file type.
245 -b [general] treat all files as binary (no text con-
246 versions). This is a shortcut for ---a.
248 -b [Tandem] force the creation files with filecode
249 type 180 ('C') when extracting Zip entries marked
250 as "text". (On Tandem, -a is enabled by default,
253 -b [VMS] auto-convert binary files (see -a above) to
254 fixed-length, 512-byte record format. Doubling the
255 option (-bb) forces all files to be extracted in
256 this format. When extracting to standard output (-c
257 or -p option in effect), the default conversion of
258 text record delimiters is disabled for binary (-b)
259 resp. all (-bb) files.
261 -B [Unix only, and only if compiled with UNIXBACKUP
262 defined] save a backup copy of each overwritten
263 file with a tilde appended (e.g., the old copy of
264 ``foo'' is renamed to ``foo~''). This is similar
265 to the default behavior of emacs(1) in many loca-
268 -C match filenames case-insensitively. unzip's phi-
269 losophy is ``you get what you ask for'' (this is
270 also responsible for the -L/-U change; see the rel-
271 evant options below). Because some file systems
272 are fully case-sensitive (notably those under the
273 Unix operating system) and because both ZIP
274 archives and unzip itself are portable across plat-
275 forms, unzip's default behavior is to match both
276 wildcard and literal filenames case-sensitively.
277 That is, specifying ``makefile'' on the command
278 line will only match ``makefile'' in the archive,
279 not ``Makefile'' or ``MAKEFILE'' (and similarly for
280 wildcard specifications). Since this does not cor-
281 respond to the behavior of many other operat-
282 ing/file systems (for example, OS/2 HPFS, which
283 preserves mixed case but is not sensitive to it),
284 the -C option may be used to force all filename
285 matches to be case-insensitive. In the example
286 above, all three files would then match ``make-
287 file'' (or ``make*'', or similar). The -C option
288 affects files in both the normal file list and the
289 excluded-file list (xlist).
291 -E [MacOS only] display contents of MacOS extra field
293 Info-ZIP 17 February 2002 (v5.5) 5
297 during restore operation.
299 -F [Acorn only] suppress removal of NFS filetype
300 extension from stored filenames.
302 -F [non-Acorn systems supporting long filenames with
303 embedded commas, and only if compiled with
304 ACORN_FTYPE_NFS defined] translate filetype infor-
305 mation from ACORN RISC OS extra field blocks into a
306 NFS filetype extension and append it to the names
307 of the extracted files. (When the stored filename
308 appears to already have an appended NFS filetype
309 extension, it is replaced by the info from the
312 -i [MacOS only] ignore filenames stored in MacOS extra
313 fields. Instead, the most compatible filename
314 stored in the generic part of the entry's header is
317 -j junk paths. The archive's directory structure is
318 not recreated; all files are deposited in the
319 extraction directory (by default, the current one).
321 -J [BeOS only] junk file attributes. The file's BeOS
322 file attributes are not restored, just the file's
325 -J [MacOS only] ignore MacOS extra fields. All Macin-
326 tosh specific info is skipped. Data-fork and
327 resource-fork are restored as separate files.
329 -L convert to lowercase any filename originating on an
330 uppercase-only operating system or file system.
331 (This was unzip's default behavior in releases
332 prior to 5.11; the new default behavior is identi-
333 cal to the old behavior with the -U option, which
334 is now obsolete and will be removed in a future
335 release.) Depending on the archiver, files
336 archived under single-case file systems (VMS, old
337 MS-DOS FAT, etc.) may be stored as all-uppercase
338 names; this can be ugly or inconvenient when
339 extracting to a case-preserving file system such as
340 OS/2 HPFS or a case-sensitive one such as under
341 Unix. By default unzip lists and extracts such
342 filenames exactly as they're stored (excepting
343 truncation, conversion of unsupported characters,
344 etc.); this option causes the names of all files
345 from certain systems to be converted to lowercase.
346 The -LL option forces conversion of every filename
347 to lowercase, regardless of the originating file
350 -M pipe all output through an internal pager similar
352 Info-ZIP 17 February 2002 (v5.5) 6
356 to the Unix more(1) command. At the end of a
357 screenful of output, unzip pauses with a
358 ``--More--'' prompt; the next screenful may be
359 viewed by pressing the Enter (Return) key or the
360 space bar. unzip can be terminated by pressing the
361 ``q'' key and, on some systems, the Enter/Return
362 key. Unlike Unix more(1), there is no forward-
363 searching or editing capability. Also, unzip
364 doesn't notice if long lines wrap at the edge of
365 the screen, effectively resulting in the printing
366 of two or more lines and the likelihood that some
367 text will scroll off the top of the screen before
368 being viewed. On some systems the number of avail-
369 able lines on the screen is not detected, in which
370 case unzip assumes the height is 24 lines.
372 -n never overwrite existing files. If a file already
373 exists, skip the extraction of that file without
374 prompting. By default unzip queries before
375 extracting any file that already exists; the user
376 may choose to overwrite only the current file,
377 overwrite all files, skip extraction of the current
378 file, skip extraction of all existing files, or
379 rename the current file.
381 -N [Amiga] extract file comments as Amiga filenotes.
382 File comments are created with the -c option of
383 zip(1L), or with the -N option of the Amiga port of
384 zip(1L), which stores filenotes as comments.
386 -o overwrite existing files without prompting. This
387 is a dangerous option, so use it with care. (It is
388 often used with -f, however, and is the only way to
389 overwrite directory EAs under OS/2.)
392 use password to decrypt encrypted zipfile entries
393 (if any). THIS IS INSECURE! Many multi-user oper-
394 ating systems provide ways for any user to see the
395 current command line of any other user; even on
396 stand-alone systems there is always the threat of
397 over-the-shoulder peeking. Storing the plaintext
398 password as part of a command line in an automated
399 script is even worse. Whenever possible, use the
400 non-echoing, interactive prompt to enter passwords.
401 (And where security is truly important, use strong
402 encryption such as Pretty Good Privacy instead of
403 the relatively weak encryption provided by standard
406 -q perform operations quietly (-qq = even quieter).
407 Ordinarily unzip prints the names of the files it's
408 extracting or testing, the extraction methods, any
409 file or zipfile comments that may be stored in the
411 Info-ZIP 17 February 2002 (v5.5) 7
415 archive, and possibly a summary when finished with
416 each archive. The -q[q] options suppress the
417 printing of some or all of these messages.
419 -s [OS/2, NT, MS-DOS] convert spaces in filenames to
420 underscores. Since all PC operating systems allow
421 spaces in filenames, unzip by default extracts
422 filenames with spaces intact (e.g.,
423 ``EA DATA. SF''). This can be awkward, however,
424 since MS-DOS in particular does not gracefully sup-
425 port spaces in filenames. Conversion of spaces to
426 underscores can eliminate the awkwardness in some
429 -U (obsolete; to be removed in a future release) leave
430 filenames uppercase if created under MS-DOS, VMS,
433 -V retain (VMS) file version numbers. VMS files can
434 be stored with a version number, in the format
435 file.ext;##. By default the ``;##'' version num-
436 bers are stripped, but this option allows them to
437 be retained. (On file systems that limit filenames
438 to particularly short lengths, the version numbers
439 may be truncated or stripped regardless of this
442 -X [VMS, Unix, OS/2, NT] restore owner/protection info
443 (UICs) under VMS, or user and group info (UID/GID)
444 under Unix, or access control lists (ACLs) under
445 certain network-enabled versions of OS/2 (Warp
446 Server with IBM LAN Server/Requester 3.0 to 5.0;
447 Warp Connect with IBM Peer 1.0), or security ACLs
448 under Windows NT. In most cases this will require
449 special system privileges, and doubling the option
450 (-XX) under NT instructs unzip to use privileges
451 for extraction; but under Unix, for example, a user
452 who belongs to several groups can restore files
453 owned by any of those groups, as long as the user
454 IDs match his or her own. Note that ordinary file
455 attributes are always restored--this option applies
456 only to optional, extra ownership info available on
457 some operating systems. [NT's access control lists
458 do not appear to be especially compatible with
459 OS/2's, so no attempt is made at cross-platform
460 portability of access privileges. It is not clear
461 under what conditions this would ever be useful
464 -$ [MS-DOS, OS/2, NT] restore the volume label if the
465 extraction medium is removable (e.g., a diskette).
466 Doubling the option (-$$) allows fixed media (hard
467 disks) to be labelled as well. By default, volume
470 Info-ZIP 17 February 2002 (v5.5) 8
475 [Acorn only] overrides the extension list supplied
476 by Unzip$Ext environment variable. During extrac-
477 tion, filename extensions that match one of the
478 items in this extension list are swapped in front
479 of the base name of the extracted file.
481 -: [all but Acorn, VM/CMS, MVS, Tandem] allows to
482 extract archive members into locations outside of
483 the current `` extraction root folder''. For secu-
484 rity reasons, unzip normally removes ``parent dir''
485 path components (``../'') from the names of
486 extracted file. This safety feature (new for ver-
487 sion 5.50) prevents unzip from accidentally writing
488 files to ``sensitive'' areas outside the active
489 extraction folder tree head. The -: option lets
490 unzip switch back to its previous, more liberal
491 behaviour, to allow exact extraction of (older)
492 archives that used ``../'' components to create
493 multiple directory trees at the level of the cur-
494 rent extraction folder.
497 unzip's default behavior may be modified via options
498 placed in an environment variable. This can be done with
499 any option, but it is probably most useful with the -a,
500 -L, -C, -q, -o, or -n modifiers: make unzip auto-convert
501 text files by default, make it convert filenames from
502 uppercase systems to lowercase, make it match names case-
503 insensitively, make it quieter, or make it always over-
504 write or never overwrite files as it extracts them. For
505 example, to make unzip act as quietly as possible, only
506 reporting errors, one would use one of the following com-
510 UNZIP=-qq; export UNZIP
518 VMS (quotes for lowercase):
519 define UNZIP_OPTS ""-qq""
521 Environment options are, in effect, considered to be just
522 like any other command-line options, except that they are
523 effectively the first options on the command line. To
524 override an environment option, one may use the ``minus
525 operator'' to remove it. For instance, to override one of
526 the quiet-flags in the example above, use the command
528 Info-ZIP 17 February 2002 (v5.5) 9
532 unzip --q[other options] zipfile
534 The first hyphen is the normal switch character, and the
535 second is a minus sign, acting on the q option. Thus the
536 effect here is to cancel one quantum of quietness. To
537 cancel both quiet flags, two (or more) minuses may be
543 (the two are equivalent). This may seem awkward or con-
544 fusing, but it is reasonably intuitive: just ignore the
545 first hyphen and go from there. It is also consistent
546 with the behavior of Unix nice(1).
548 As suggested by the examples above, the default variable
549 names are UNZIP_OPTS for VMS (where the symbol used to
550 install unzip as a foreign command would otherwise be con-
551 fused with the environment variable), and UNZIP for all
552 other operating systems. For compatibility with zip(1L),
553 UNZIPOPT is also accepted (don't ask). If both UNZIP and
554 UNZIPOPT are defined, however, UNZIP takes precedence.
555 unzip's diagnostic option (-v with no zipfile name) can be
556 used to check the values of all four possible unzip and
557 zipinfo environment variables.
559 The timezone variable (TZ) should be set according to the
560 local timezone in order for the -f and -u to operate cor-
561 rectly. See the description of -f above for details.
562 This variable may also be necessary in order for times-
563 tamps on extracted files to be set correctly. Under Win-
564 dows 95/NT unzip should know the correct timezone even if
565 TZ is unset, assuming the timezone is correctly set in the
569 Encrypted archives are fully supported by Info-ZIP soft-
570 ware, but due to United States export restrictions,
571 de-/encryption support might be disabled in your compiled
572 binary. However, since spring 2000, US export restric-
573 tions have been liberated, and our source archives do now
574 include full crypt code. In case you need binary distri-
575 butions with crypt support enabled, see the file ``WHERE''
576 in any Info-ZIP source or binary distribution for loca-
577 tions both inside and outside the US.
579 Some compiled versions of unzip may not support decryp-
580 tion. To check a version for crypt support, either
581 attempt to test or extract an encrypted archive, or else
582 check unzip's diagnostic screen (see the -v option above)
583 for ``[decryption]'' as one of the special compilation
586 Info-ZIP 17 February 2002 (v5.5) 10
590 As noted above, the -P option may be used to supply a
591 password on the command line, but at a cost in security.
592 The preferred decryption method is simply to extract nor-
593 mally; if a zipfile member is encrypted, unzip will prompt
594 for the password without echoing what is typed. unzip
595 continues to use the same password as long as it appears
596 to be valid, by testing a 12-byte header on each file.
597 The correct password will always check out against the
598 header, but there is a 1-in-256 chance that an incorrect
599 password will as well. (This is a security feature of the
600 PKWARE zipfile format; it helps prevent brute-force
601 attacks that might otherwise gain a large speed advantage
602 by testing only the header.) In the case that an incor-
603 rect password is given but it passes the header test any-
604 way, either an incorrect CRC will be generated for the
605 extracted data or else unzip will fail during the extrac-
606 tion because the ``decrypted'' bytes do not constitute a
607 valid compressed data stream.
609 If the first password fails the header check on some file,
610 unzip will prompt for another password, and so on until
611 all files are extracted. If a password is not known,
612 entering a null password (that is, just a carriage return
613 or ``Enter'') is taken as a signal to skip all further
614 prompting. Only unencrypted files in the archive(s) will
615 thereafter be extracted. (In fact, that's not quite true;
616 older versions of zip(1L) and zipcloak(1L) allowed null
617 passwords, so unzip checks each encrypted file to see if
618 the null password works. This may result in ``false posi-
619 tives'' and extraction errors, as noted above.)
621 Archives encrypted with 8-bit passwords (for example,
622 passwords with accented European characters) may not be
623 portable across systems and/or other archivers. This
624 problem stems from the use of multiple encoding methods
625 for such characters, including Latin-1 (ISO 8859-1) and
626 OEM code page 850. DOS PKZIP 2.04g uses the OEM code
627 page; Windows PKZIP 2.50 uses Latin-1 (and is therefore
628 incompatible with DOS PKZIP); Info-ZIP uses the OEM code
629 page on DOS, OS/2 and Win3.x ports but Latin-1 everywhere
630 else; and Nico Mak's WinZip 6.x does not allow 8-bit pass-
631 words at all. UnZip 5.3 (or newer) attempts to use the
632 default character set first (e.g., Latin-1), followed by
633 the alternate one (e.g., OEM code page) to test passwords.
634 On EBCDIC systems, if both of these fail, EBCDIC encoding
635 will be tested as a last resort. (EBCDIC is not tested on
636 non-EBCDIC systems, because there are no known archivers
637 that encrypt using EBCDIC encoding.) ISO character encod-
638 ings other than Latin-1 are not supported.
641 To use unzip to extract all members of the archive let-
642 ters.zip into the current directory and subdirectories
643 below it, creating any subdirectories as necessary:
645 Info-ZIP 17 February 2002 (v5.5) 11
651 To extract all members of letters.zip into the current
656 To test letters.zip, printing only a summary message indi-
657 cating whether the archive is OK or not:
661 To test all zipfiles in the current directory, printing
666 (The backslash before the asterisk is only required if the
667 shell expands wildcards, as in Unix; double quotes could
668 have been used instead, as in the source examples
669 below.) To extract to standard output all members of let-
670 ters.zip whose names end in .tex, auto-converting to the
671 local end-of-line convention and piping the output into
674 unzip -ca letters \*.tex | more
676 To extract the binary file paper1.dvi to standard output
677 and pipe it to a printing program:
679 unzip -p articles paper1.dvi | dvips
681 To extract all FORTRAN and C source files--*.f, *.c, *.h,
682 and Makefile--into the /tmp directory:
684 unzip source.zip "*.[fch]" Makefile -d /tmp
686 (the double quotes are necessary only in Unix and only if
687 globbing is turned on). To extract all FORTRAN and C
688 source files, regardless of case (e.g., both *.c and *.C,
689 and any makefile, Makefile, MAKEFILE or similar):
691 unzip -C source.zip "*.[fch]" makefile -d /tmp
693 To extract any such files but convert any uppercase MS-DOS
694 or VMS names to lowercase and convert the line-endings of
695 all of the files to the local standard (without respect to
696 any files that might be marked ``binary''):
698 unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
700 To extract only newer versions of the files already in the
701 current directory, without querying (NOTE: be careful of
702 unzipping in one timezone a zipfile created in
704 Info-ZIP 17 February 2002 (v5.5) 12
708 another--ZIP archives other than those created by Zip 2.1
709 or later contain no timezone information, and a ``newer''
710 file from an eastern timezone may, in fact, be older):
714 To extract newer versions of the files already in the cur-
715 rent directory and to create any files not already there
716 (same caveat as previous example):
720 To display a diagnostic screen showing which unzip and
721 zipinfo options are stored in environment variables,
722 whether decryption support was compiled in, the compiler
723 with which unzip was compiled, etc.:
727 In the last five examples, assume that UNZIP or UNZIP_OPTS
728 is set to -q. To do a singly quiet listing:
732 To do a doubly quiet listing:
736 (Note that the ``.zip'' is generally not necessary.) To
737 do a standard listing:
744 (Extra minuses in options don't hurt.)
747 The current maintainer, being a lazy sort, finds it very
748 useful to define a pair of aliases: tt for ``unzip -tq''
749 and ii for ``unzip -Z'' (or ``zipinfo''). One may then
750 simply type ``tt zipfile'' to test an archive, something
751 that is worth making a habit of doing. With luck unzip
752 will report ``No errors detected in compressed data of
753 zipfile.zip,'' after which one may breathe a sigh of
756 The maintainer also finds it useful to set the UNZIP envi-
757 ronment variable to ``-aL'' and is tempted to add ``-C''
758 as well. His ZIPINFO variable is set to ``-z''.
761 The exit status (or error level) approximates the exit
763 Info-ZIP 17 February 2002 (v5.5) 13
767 codes defined by PKWARE and takes on the following values,
770 0 normal; no errors or warnings detected.
772 1 one or more warning errors were encountered,
773 but processing completed successfully any-
774 way. This includes zipfiles where one or
775 more files was skipped due to unsupported
776 compression method or encryption with an
779 2 a generic error in the zipfile format was
780 detected. Processing may have completed
781 successfully anyway; some broken zipfiles
782 created by other archivers have simple work-
785 3 a severe error in the zipfile format was
786 detected. Processing probably failed imme-
789 4 unzip was unable to allocate memory for one
790 or more buffers during program initializa-
793 5 unzip was unable to allocate memory or
794 unable to obtain a tty to read the decryp-
797 6 unzip was unable to allocate memory during
798 decompression to disk.
800 7 unzip was unable to allocate memory during
801 in-memory decompression.
803 8 [currently not used]
805 9 the specified zipfiles were not found.
807 10 invalid options were specified on the com-
810 11 no matching files were found.
812 50 the disk is (or was) full during extraction.
814 51 the end of the ZIP archive was encountered
817 80 the user aborted unzip prematurely with con-
820 81 testing or extraction of one or more files
822 Info-ZIP 17 February 2002 (v5.5) 14
826 failed due to unsupported compression meth-
827 ods or unsupported decryption.
829 82 no files were found due to bad decryption
830 password(s). (If even one file is success-
831 fully processed, however, the exit status is
834 VMS interprets standard Unix (or PC) return values as
835 other, scarier-looking things, so unzip instead maps them
836 into VMS-style status codes. The current mapping is as
837 follows: 1 (success) for normal exit, 0x7fff0001 for
838 warning errors, and (0x7fff000? + 16*nor-
839 mal_unzip_exit_status) for all other errors, where the `?'
840 is 2 (error) for unzip values 2, 9-11 and 80-82, and 4
841 (fatal error) for the remaining ones (3-8, 50, 51). In
842 addition, there is a compilation option to expand upon
843 this behavior: defining RETURN_CODES results in a human-
844 readable explanation of what the error status means.
847 Multi-part archives are not yet supported, except in con-
848 junction with zip. (All parts must be concatenated
849 together in order, and then ``zip -F'' must be performed
850 on the concatenated archive in order to ``fix'' it.) This
851 will definitely be corrected in the next major release.
853 Archives read from standard input are not yet supported,
854 except with funzip (and then only the first member of the
855 archive can be extracted).
857 Archives encrypted with 8-bit passwords (e.g., passwords
858 with accented European characters) may not be portable
859 across systems and/or other archivers. See the discussion
862 unzip's -M (``more'') option is overly simplistic in its
863 handling of screen output; as noted above, it fails to
864 detect the wrapping of long lines and may thereby cause
865 lines at the top of the screen to be scrolled off before
866 being read. unzip should detect and treat each occurrence
867 of line-wrap as one additional line printed. This
868 requires knowledge of the screen's width as well as its
869 height. In addition, unzip should detect the true screen
870 geometry on all systems.
872 Dates, times and permissions of stored directories are not
873 restored except under Unix.
875 [MS-DOS] When extracting or testing files from an archive
876 on a defective floppy diskette, if the ``Fail'' option is
877 chosen from DOS's ``Abort, Retry, Fail?'' message, older
878 versions of unzip may hang the system, requiring a reboot.
879 This problem appears to be fixed, but control-C (or
881 Info-ZIP 17 February 2002 (v5.5) 15
885 control-Break) can still be used to terminate unzip.
887 Under DEC Ultrix, unzip would sometimes fail on long zip-
888 files (bad CRC, not always reproducible). This was appar-
889 ently due either to a hardware bug (cache memory) or an
890 operating system bug (improper handling of page faults?).
891 Since Ultrix has been abandoned in favor of Digital Unix
892 (OSF/1), this may not be an issue anymore.
894 [Unix] Unix special files such as FIFO buffers (named
895 pipes), block devices and character devices are not
896 restored even if they are somehow represented in the zip-
897 file, nor are hard-linked files relinked. Basically the
898 only file types restored by unzip are regular files,
899 directories and symbolic (soft) links.
901 [OS/2] Extended attributes for existing directories are
902 only updated if the -o (``overwrite all'') option is
903 given. This is a limitation of the operating system;
904 because directories only have a creation time associated
905 with them, unzip has no way to determine whether the
906 stored attributes are newer or older than those on disk.
907 In practice this may mean a two-pass approach is required:
908 first unpack the archive normally (with or without fresh-
909 ening/updating existing files), then overwrite just the
910 directory entries (e.g., ``unzip -o foo */'').
912 [VMS] When extracting to another directory, only the
913 [.foo] syntax is accepted for the -d option; the simple
914 Unix foo syntax is silently ignored (as is the less common
917 [VMS] When the file being extracted already exists,
918 unzip's query only allows skipping, overwriting or renam-
919 ing; there should additionally be a choice for creating a
920 new version of the file. In fact, the ``overwrite''
921 choice does create a new version; the old version is not
922 overwritten or deleted.
925 funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zip-
926 info(1L), zipnote(1L), zipsplit(1L)
929 The Info-ZIP home page is currently at
930 http://www.info-zip.org/pub/infozip/
932 ftp://ftp.info-zip.org/pub/infozip/ .
935 The primary Info-ZIP authors (current semi-active members
936 of the Zip-Bugs workgroup) are: Greg ``Cave Newt''
937 Roelofs (UnZip); Onno van der Linden (Zip); Jean-loup
938 Gailly (compression); Mark Adler (decompression, fUnZip);
940 Info-ZIP 17 February 2002 (v5.5) 16
944 Christian Spieler (UnZip maintance coordination, VMS, MS-
945 DOS, Windows 95, NT, shared code, general Zip and UnZip
946 integration and optimization); Mike White (Windows GUI,
947 Windows DLLs); Kai Uwe Rommel (OS/2); Paul Kienitz (Amiga,
948 Windows 95); Chris Herborth (BeOS, QNX, Atari); Jonathan
949 Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC OS); Harald
950 Denker (Atari, MVS); John Bush (Solaris, Amiga); Hunter
951 Goatley (VMS); Steve Salisbury (Windows 95, NT); Steve
952 Miller (Windows CE GUI), Johnny Lee (MS-DOS, Windows 95,
953 NT); and Dave Smith (Tandem NSK). The author of the orig-
954 inal unzip code upon which Info-ZIP's was based is Samuel
955 H. Smith; Carl Mascott did the first Unix port; and David
956 P. Kirschbaum organized and led Info-ZIP in its early
957 days with Keith Petersen hosting the original mailing list
958 at WSMR-SimTel20. The full list of contributors to UnZip
959 has grown quite large; please refer to the CONTRIBS file
960 in the UnZip source distribution for a relatively complete
964 v1.2 15 Mar 89 Samuel H. Smith
965 v2.0 9 Sep 89 Samuel H. Smith
966 v2.x fall 1989 many Usenet contributors
967 v3.0 1 May 90 Info-ZIP (DPK, consolidator)
968 v3.1 15 Aug 90 Info-ZIP (DPK, consolidator)
969 v4.0 1 Dec 90 Info-ZIP (GRR, maintainer)
970 v4.1 12 May 91 Info-ZIP
971 v4.2 20 Mar 92 Info-ZIP (Zip-Bugs subgroup, GRR)
972 v5.0 21 Aug 92 Info-ZIP (Zip-Bugs subgroup, GRR)
973 v5.01 15 Jan 93 Info-ZIP (Zip-Bugs subgroup, GRR)
974 v5.1 7 Feb 94 Info-ZIP (Zip-Bugs subgroup, GRR)
975 v5.11 2 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR)
976 v5.12 28 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR)
977 v5.2 30 Apr 96 Info-ZIP (Zip-Bugs subgroup, GRR)
978 v5.3 22 Apr 97 Info-ZIP (Zip-Bugs subgroup, GRR)
979 v5.31 31 May 97 Info-ZIP (Zip-Bugs subgroup, GRR)
980 v5.32 3 Nov 97 Info-ZIP (Zip-Bugs subgroup, GRR)
981 v5.4 28 Nov 98 Info-ZIP (Zip-Bugs subgroup, SPC)
982 v5.41 16 Apr 00 Info-ZIP (Zip-Bugs subgroup, SPC)
983 v5.42 14 Jan 01 Info-ZIP (Zip-Bugs subgroup, SPC)
984 v5.5 17 Feb 02 Info-ZIP (Zip-Bugs subgroup, SPC)
986 Info-ZIP 17 February 2002 (v5.5) 17