Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6725 | siemargl | 1 | UNZIP(1L) UNZIP(1L) |
2 | |||
3 | NAME |
||
4 | unzip - list, test and extract compressed files in a ZIP archive |
||
5 | |||
6 | SYNOPSIS |
||
7 | unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] |
||
8 | [-x xfile(s) ...] [-d exdir] |
||
9 | |||
10 | DESCRIPTION |
||
11 | unzip will list, test, or extract files from a ZIP archive, commonly |
||
12 | found on MS-DOS systems. The default behavior (with no options) is to |
||
13 | extract into the current directory (and subdirectories below it) all |
||
14 | files from the specified ZIP archive. A companion program, zip(1L), |
||
15 | creates ZIP archives; both programs are compatible with archives cre- |
||
16 | ated by PKWARE's PKZIP and PKUNZIP for MS-DOS, but in many cases the |
||
17 | program options or default behaviors differ. |
||
18 | |||
19 | ARGUMENTS |
||
20 | file[.zip] |
||
21 | Path of the ZIP archive(s). If the file specification is a |
||
22 | wildcard, each matching file is processed in an order determined |
||
23 | by the operating system (or file system). Only the filename can |
||
24 | be a wildcard; the path itself cannot. Wildcard expressions are |
||
25 | similar to those supported in commonly used Unix shells (sh, |
||
26 | ksh, csh) and may contain: |
||
27 | |||
28 | * matches a sequence of 0 or more characters |
||
29 | |||
30 | ? matches exactly 1 character |
||
31 | |||
32 | [...] matches any single character found inside the brackets; |
||
33 | ranges are specified by a beginning character, a hyphen, |
||
34 | and an ending character. If an exclamation point or a |
||
35 | caret (`!' or `^') follows the left bracket, then the |
||
36 | range of characters within the brackets is complemented |
||
37 | (that is, anything except the characters inside the |
||
38 | brackets is considered a match). To specify a verbatim |
||
39 | left bracket, the three-character sequence ``[[]'' has to |
||
40 | be used. |
||
41 | |||
42 | (Be sure to quote any character that might otherwise be inter- |
||
43 | preted or modified by the operating system, particularly under |
||
44 | Unix and VMS.) If no matches are found, the specification is |
||
45 | assumed to be a literal filename; and if that also fails, the |
||
46 | suffix .zip is appended. Note that self-extracting ZIP files |
||
47 | are supported, as with any other ZIP archive; just specify the |
||
48 | .exe suffix (if any) explicitly. |
||
49 | |||
50 | [file(s)] |
||
51 | An optional list of archive members to be processed, separated |
||
52 | by spaces. (VMS versions compiled with VMSCLI defined must |
||
53 | delimit files with commas instead. See -v in OPTIONS below.) |
||
54 | Regular expressions (wildcards) may be used to match multiple |
||
55 | members; see above. Again, be sure to quote expressions that |
||
56 | would otherwise be expanded or modified by the operating system. |
||
57 | |||
58 | [-x xfile(s)] |
||
59 | An optional list of archive members to be excluded from process- |
||
60 | ing. Since wildcard characters normally match (`/') directory |
||
61 | separators (for exceptions see the option -W), this option may |
||
62 | be used to exclude any files that are in subdirectories. For |
||
63 | example, ``unzip foo *.[ch] -x */*'' would extract all C source |
||
64 | files in the main directory, but none in any subdirectories. |
||
65 | Without the -x option, all C source files in all directories |
||
66 | within the zipfile would be extracted. |
||
67 | |||
68 | [-d exdir] |
||
69 | An optional directory to which to extract files. By default, |
||
70 | all files and subdirectories are recreated in the current direc- |
||
71 | tory; the -d option allows extraction in an arbitrary directory |
||
72 | (always assuming one has permission to write to the directory). |
||
73 | This option need not appear at the end of the command line; it |
||
74 | is also accepted before the zipfile specification (with the nor- |
||
75 | mal options), immediately after the zipfile specification, or |
||
76 | between the file(s) and the -x option. The option and directory |
||
77 | may be concatenated without any white space between them, but |
||
78 | note that this may cause normal shell behavior to be suppressed. |
||
79 | In particular, ``-d ~'' (tilde) is expanded by Unix C shells |
||
80 | into the name of the user's home directory, but ``-d~'' is |
||
81 | treated as a literal subdirectory ``~'' of the current direc- |
||
82 | tory. |
||
83 | |||
84 | OPTIONS |
||
85 | Note that, in order to support obsolescent hardware, unzip's usage |
||
86 | screen is limited to 22 or 23 lines and should therefore be considered |
||
87 | only a reminder of the basic unzip syntax rather than an exhaustive |
||
88 | list of all possible flags. The exhaustive list follows: |
||
89 | |||
90 | -Z zipinfo(1L) mode. If the first option on the command line is |
||
91 | -Z, the remaining options are taken to be zipinfo(1L) options. |
||
92 | See the appropriate manual page for a description of these |
||
93 | options. |
||
94 | |||
95 | -A [OS/2, Unix DLL] print extended help for the DLL's programming |
||
96 | interface (API). |
||
97 | |||
98 | -c extract files to stdout/screen (``CRT''). This option is simi- |
||
99 | lar to the -p option except that the name of each file is |
||
100 | printed as it is extracted, the -a option is allowed, and ASCII- |
||
101 | EBCDIC conversion is automatically performed if appropriate. |
||
102 | This option is not listed in the unzip usage screen. |
||
103 | |||
104 | -f freshen existing files, i.e., extract only those files that |
||
105 | already exist on disk and that are newer than the disk copies. |
||
106 | By default unzip queries before overwriting, but the -o option |
||
107 | may be used to suppress the queries. Note that under many oper- |
||
108 | ating systems, the TZ (timezone) environment variable must be |
||
109 | set correctly in order for -f and -u to work properly (under |
||
110 | Unix the variable is usually set automatically). The reasons |
||
111 | for this are somewhat subtle but have to do with the differences |
||
112 | between DOS-format file times (always local time) and Unix-for- |
||
113 | mat times (always in GMT/UTC) and the necessity to compare the |
||
114 | two. A typical TZ value is ``PST8PDT'' (US Pacific time with |
||
115 | automatic adjustment for Daylight Savings Time or ``summer |
||
116 | time''). |
||
117 | |||
118 | -l list archive files (short format). The names, uncompressed file |
||
119 | sizes and modification dates and times of the specified files |
||
120 | are printed, along with totals for all files specified. If |
||
121 | UnZip was compiled with OS2_EAS defined, the -l option also |
||
122 | lists columns for the sizes of stored OS/2 extended attributes |
||
123 | (EAs) and OS/2 access control lists (ACLs). In addition, the |
||
124 | zipfile comment and individual file comments (if any) are dis- |
||
125 | played. If a file was archived from a single-case file system |
||
126 | (for example, the old MS-DOS FAT file system) and the -L option |
||
127 | was given, the filename is converted to lowercase and is pre- |
||
128 | fixed with a caret (^). |
||
129 | |||
130 | -p extract files to pipe (stdout). Nothing but the file data is |
||
131 | sent to stdout, and the files are always extracted in binary |
||
132 | format, just as they are stored (no conversions). |
||
133 | |||
134 | -t test archive files. This option extracts each specified file in |
||
135 | memory and compares the CRC (cyclic redundancy check, an |
||
136 | enhanced checksum) of the expanded file with the original file's |
||
137 | stored CRC value. |
||
138 | |||
139 | -T [most OSes] set the timestamp on the archive(s) to that of the |
||
140 | newest file in each one. This corresponds to zip's -go option |
||
141 | except that it can be used on wildcard zipfiles (e.g., ``unzip |
||
142 | -T \*.zip'') and is much faster. |
||
143 | |||
144 | -u update existing files and create new ones if needed. This |
||
145 | option performs the same function as the -f option, extracting |
||
146 | (with query) files that are newer than those with the same name |
||
147 | on disk, and in addition it extracts those files that do not |
||
148 | already exist on disk. See -f above for information on setting |
||
149 | the timezone properly. |
||
150 | |||
151 | -v list archive files (verbose format) or show diagnostic version |
||
152 | info. This option has evolved and now behaves as both an option |
||
153 | and a modifier. As an option it has two purposes: when a zip- |
||
154 | file is specified with no other options, -v lists archive files |
||
155 | verbosely, adding to the basic -l info the compression method, |
||
156 | compressed size, compression ratio and 32-bit CRC. In contrast |
||
157 | to most of the competing utilities, unzip removes the 12 addi- |
||
158 | tional header bytes of encrypted entries from the compressed |
||
159 | size numbers. Therefore, compressed size and compression ratio |
||
160 | figures are independent of the entry's encryption status and |
||
161 | show the correct compression performance. (The complete size of |
||
162 | the encrypted compressed data stream for zipfile entries is |
||
163 | reported by the more verbose zipinfo(1L) reports, see the sepa- |
||
164 | rate manual.) When no zipfile is specified (that is, the com- |
||
165 | plete command is simply ``unzip -v''), a diagnostic screen is |
||
166 | printed. In addition to the normal header with release date and |
||
167 | version, unzip lists the home Info-ZIP ftp site and where to |
||
168 | find a list of other ftp and non-ftp sites; the target operating |
||
169 | system for which it was compiled, as well as (possibly) the |
||
170 | hardware on which it was compiled, the compiler and version |
||
171 | used, and the compilation date; any special compilation options |
||
172 | that might affect the program's operation (see also DECRYPTION |
||
173 | below); and any options stored in environment variables that |
||
174 | might do the same (see ENVIRONMENT OPTIONS below). As a modi- |
||
175 | fier it works in conjunction with other options (e.g., -t) to |
||
176 | produce more verbose or debugging output; this is not yet fully |
||
177 | implemented but will be in future releases. |
||
178 | |||
179 | -z display only the archive comment. |
||
180 | |||
181 | MODIFIERS |
||
182 | -a convert text files. Ordinarily all files are extracted exactly |
||
183 | as they are stored (as ``binary'' files). The -a option causes |
||
184 | files identified by zip as text files (those with the `t' label |
||
185 | in zipinfo listings, rather than `b') to be automatically |
||
186 | extracted as such, converting line endings, end-of-file charac- |
||
187 | ters and the character set itself as necessary. (For example, |
||
188 | Unix files use line feeds (LFs) for end-of-line (EOL) and have |
||
189 | no end-of-file (EOF) marker; Macintoshes use carriage returns |
||
190 | (CRs) for EOLs; and most PC operating systems use CR+LF for EOLs |
||
191 | and control-Z for EOF. In addition, IBM mainframes and the |
||
192 | Michigan Terminal System use EBCDIC rather than the more common |
||
193 | ASCII character set, and NT supports Unicode.) Note that zip's |
||
194 | identification of text files is by no means perfect; some |
||
195 | ``text'' files may actually be binary and vice versa. unzip |
||
196 | therefore prints ``[text]'' or ``[binary]'' as a visual check |
||
197 | for each file it extracts when using the -a option. The -aa |
||
198 | option forces all files to be extracted as text, regardless of |
||
199 | the supposed file type. On VMS, see also -S. |
||
200 | |||
201 | -b [general] treat all files as binary (no text conversions). This |
||
202 | is a shortcut for ---a. |
||
203 | |||
204 | -b [Tandem] force the creation files with filecode type 180 ('C') |
||
205 | when extracting Zip entries marked as "text". (On Tandem, -a is |
||
206 | enabled by default, see above). |
||
207 | |||
208 | -b [VMS] auto-convert binary files (see -a above) to fixed-length, |
||
209 | 512-byte record format. Doubling the option (-bb) forces all |
||
210 | files to be extracted in this format. When extracting to stan- |
||
211 | dard output (-c or -p option in effect), the default conversion |
||
212 | of text record delimiters is disabled for binary (-b) resp. all |
||
213 | (-bb) files. |
||
214 | |||
215 | -B [when compiled with UNIXBACKUP defined] save a backup copy of |
||
216 | each overwritten file. The backup file is gets the name of the |
||
217 | target file with a tilde and optionally a unique sequence number |
||
218 | (up to 5 digits) appended. The sequence number is applied when- |
||
219 | ever another file with the original name plus tilde already |
||
220 | exists. When used together with the "overwrite all" option -o, |
||
221 | numbered backup files are never created. In this case, all |
||
222 | backup files are named as the original file with an appended |
||
223 | tilde, existing backup files are deleted without notice. This |
||
224 | feature works similarly to the default behavior of emacs(1) in |
||
225 | many locations. |
||
226 | |||
227 | Example: the old copy of ``foo'' is renamed to ``foo~''. |
||
228 | |||
229 | Warning: Users should be aware that the -B option does not pre- |
||
230 | vent loss of existing data under all circumstances. For exam- |
||
231 | ple, when unzip is run in overwrite-all mode, an existing |
||
232 | ``foo~'' file is deleted before unzip attempts to rename ``foo'' |
||
233 | to ``foo~''. When this rename attempt fails (because of a file |
||
234 | locks, insufficient privileges, or ...), the extraction of |
||
235 | ``foo~'' gets cancelled, but the old backup file is already |
||
236 | lost. A similar scenario takes place when the sequence number |
||
237 | range for numbered backup files gets exhausted (99999, or 65535 |
||
238 | for 16-bit systems). In this case, the backup file with the |
||
239 | maximum sequence number is deleted and replaced by the new |
||
240 | backup version without notice. |
||
241 | |||
242 | -C use case-insensitive matching for the selection of archive |
||
243 | entries from the command-line list of extract selection pat- |
||
244 | terns. unzip's philosophy is ``you get what you ask for'' (this |
||
245 | is also responsible for the -L/-U change; see the relevant |
||
246 | options below). Because some file systems are fully case-sensi- |
||
247 | tive (notably those under the Unix operating system) and because |
||
248 | both ZIP archives and unzip itself are portable across plat- |
||
249 | forms, unzip's default behavior is to match both wildcard and |
||
250 | literal filenames case-sensitively. That is, specifying ``make- |
||
251 | file'' on the command line will only match ``makefile'' in the |
||
252 | archive, not ``Makefile'' or ``MAKEFILE'' (and similarly for |
||
253 | wildcard specifications). Since this does not correspond to the |
||
254 | behavior of many other operating/file systems (for example, OS/2 |
||
255 | HPFS, which preserves mixed case but is not sensitive to it), |
||
256 | the -C option may be used to force all filename matches to be |
||
257 | case-insensitive. In the example above, all three files would |
||
258 | then match ``makefile'' (or ``make*'', or similar). The -C |
||
259 | option affects file specs in both the normal file list and the |
||
260 | excluded-file list (xlist). |
||
261 | |||
262 | Please note that the -C option does neither affect the search |
||
263 | for the zipfile(s) nor the matching of archive entries to exist- |
||
264 | ing files on the extraction path. On a case-sensitive file sys- |
||
265 | tem, unzip will never try to overwrite a file ``FOO'' when |
||
266 | extracting an entry ``foo''! |
||
267 | |||
268 | -D skip restoration of timestamps for extracted items. Normally, |
||
269 | unzip tries to restore all meta-information for extracted items |
||
270 | that are supplied in the Zip archive (and do not require privi- |
||
271 | leges or impose a security risk). By specifying -D, unzip is |
||
272 | told to suppress restoration of timestamps for directories |
||
273 | explicitly created from Zip archive entries. This option only |
||
274 | applies to ports that support setting timestamps for directories |
||
275 | (currently ATheOS, BeOS, MacOS, OS/2, Unix, VMS, Win32, for |
||
276 | other unzip ports, -D has no effect). The duplicated option -DD |
||
277 | forces suppression of timestamp restoration for all extracted |
||
278 | entries (files and directories). This option results in setting |
||
279 | the timestamps for all extracted entries to the current time. |
||
280 | |||
281 | On VMS, the default setting for this option is -D for consis- |
||
282 | tency with the behaviour of BACKUP: file timestamps are |
||
283 | restored, timestamps of extracted directories are left at the |
||
284 | current time. To enable restoration of directory timestamps, |
||
285 | the negated option --D should be specified. On VMS, the option |
||
286 | -D disables timestamp restoration for all extracted Zip archive |
||
287 | items. (Here, a single -D on the command line combines with the |
||
288 | default -D to do what an explicit -DD does on other systems.) |
||
289 | |||
290 | -E [MacOS only] display contents of MacOS extra field during |
||
291 | restore operation. |
||
292 | |||
293 | -F [Acorn only] suppress removal of NFS filetype extension from |
||
294 | stored filenames. |
||
295 | |||
296 | -F [non-Acorn systems supporting long filenames with embedded com- |
||
297 | mas, and only if compiled with ACORN_FTYPE_NFS defined] trans- |
||
298 | late filetype information from ACORN RISC OS extra field blocks |
||
299 | into a NFS filetype extension and append it to the names of the |
||
300 | extracted files. (When the stored filename appears to already |
||
301 | have an appended NFS filetype extension, it is replaced by the |
||
302 | info from the extra field.) |
||
303 | |||
304 | -i [MacOS only] ignore filenames stored in MacOS extra fields. |
||
305 | Instead, the most compatible filename stored in the generic part |
||
306 | of the entry's header is used. |
||
307 | |||
308 | -j junk paths. The archive's directory structure is not recreated; |
||
309 | all files are deposited in the extraction directory (by default, |
||
310 | the current one). |
||
311 | |||
312 | -J [BeOS only] junk file attributes. The file's BeOS file |
||
313 | attributes are not restored, just the file's data. |
||
314 | |||
315 | -J [MacOS only] ignore MacOS extra fields. All Macintosh specific |
||
316 | info is skipped. Data-fork and resource-fork are restored as |
||
317 | separate files. |
||
318 | |||
319 | -K [AtheOS, BeOS, Unix only] retain SUID/SGID/Tacky file |
||
320 | attributes. Without this flag, these attribute bits are cleared |
||
321 | for security reasons. |
||
322 | |||
323 | -L convert to lowercase any filename originating on an uppercase- |
||
324 | only operating system or file system. (This was unzip's default |
||
325 | behavior in releases prior to 5.11; the new default behavior is |
||
326 | identical to the old behavior with the -U option, which is now |
||
327 | obsolete and will be removed in a future release.) Depending on |
||
328 | the archiver, files archived under single-case file systems |
||
329 | (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase |
||
330 | names; this can be ugly or inconvenient when extracting to a |
||
331 | case-preserving file system such as OS/2 HPFS or a case-sensi- |
||
332 | tive one such as under Unix. By default unzip lists and |
||
333 | extracts such filenames exactly as they're stored (excepting |
||
334 | truncation, conversion of unsupported characters, etc.); this |
||
335 | option causes the names of all files from certain systems to be |
||
336 | converted to lowercase. The -LL option forces conversion of |
||
337 | every filename to lowercase, regardless of the originating file |
||
338 | system. |
||
339 | |||
340 | -M pipe all output through an internal pager similar to the Unix |
||
341 | more(1) command. At the end of a screenful of output, unzip |
||
342 | pauses with a ``--More--'' prompt; the next screenful may be |
||
343 | viewed by pressing the Enter (Return) key or the space bar. |
||
344 | unzip can be terminated by pressing the ``q'' key and, on some |
||
345 | systems, the Enter/Return key. Unlike Unix more(1), there is no |
||
346 | forward-searching or editing capability. Also, unzip doesn't |
||
347 | notice if long lines wrap at the edge of the screen, effectively |
||
348 | resulting in the printing of two or more lines and the likeli- |
||
349 | hood that some text will scroll off the top of the screen before |
||
350 | being viewed. On some systems the number of available lines on |
||
351 | the screen is not detected, in which case unzip assumes the |
||
352 | height is 24 lines. |
||
353 | |||
354 | -n never overwrite existing files. If a file already exists, skip |
||
355 | the extraction of that file without prompting. By default unzip |
||
356 | queries before extracting any file that already exists; the user |
||
357 | may choose to overwrite only the current file, overwrite all |
||
358 | files, skip extraction of the current file, skip extraction of |
||
359 | all existing files, or rename the current file. |
||
360 | |||
361 | -N [Amiga] extract file comments as Amiga filenotes. File comments |
||
362 | are created with the -c option of zip(1L), or with the -N option |
||
363 | of the Amiga port of zip(1L), which stores filenotes as com- |
||
364 | ments. |
||
365 | |||
366 | -o overwrite existing files without prompting. This is a dangerous |
||
367 | option, so use it with care. (It is often used with -f, how- |
||
368 | ever, and is the only way to overwrite directory EAs under |
||
369 | OS/2.) |
||
370 | |||
371 | -P password |
||
372 | use password to decrypt encrypted zipfile entries (if any). |
||
373 | THIS IS INSECURE! Many multi-user operating systems provide |
||
374 | ways for any user to see the current command line of any other |
||
375 | user; even on stand-alone systems there is always the threat of |
||
376 | over-the-shoulder peeking. Storing the plaintext password as |
||
377 | part of a command line in an automated script is even worse. |
||
378 | Whenever possible, use the non-echoing, interactive prompt to |
||
379 | enter passwords. (And where security is truly important, use |
||
380 | strong encryption such as Pretty Good Privacy instead of the |
||
381 | relatively weak encryption provided by standard zipfile utili- |
||
382 | ties.) |
||
383 | |||
384 | -q perform operations quietly (-qq = even quieter). Ordinarily |
||
385 | unzip prints the names of the files it's extracting or testing, |
||
386 | the extraction methods, any file or zipfile comments that may be |
||
387 | stored in the archive, and possibly a summary when finished with |
||
388 | each archive. The -q[q] options suppress the printing of some |
||
389 | or all of these messages. |
||
390 | |||
391 | -s [OS/2, NT, MS-DOS] convert spaces in filenames to underscores. |
||
392 | Since all PC operating systems allow spaces in filenames, unzip |
||
393 | by default extracts filenames with spaces intact (e.g., |
||
394 | ``EA DATA. SF''). This can be awkward, however, since MS-DOS in |
||
395 | particular does not gracefully support spaces in filenames. |
||
396 | Conversion of spaces to underscores can eliminate the awkward- |
||
397 | ness in some cases. |
||
398 | |||
399 | -S [VMS] convert text files (-a, -aa) into Stream_LF record format, |
||
400 | instead of the text-file default, variable-length record format. |
||
401 | (Stream_LF is the default record format of VMS unzip. It is |
||
402 | applied unless conversion (-a, -aa and/or -b, -bb) is requested |
||
403 | or a VMS-specific entry is processed.) |
||
404 | |||
405 | -U [UNICODE_SUPPORT only] modify or disable UTF-8 handling. When |
||
406 | UNICODE_SUPPORT is available, the option -U forces unzip to |
||
407 | escape all non-ASCII characters from UTF-8 coded filenames as |
||
408 | ``#Uxxxx'' (for UCS-2 characters, or ``#Lxxxxxx'' for unicode |
||
409 | codepoints needing 3 octets). This option is mainly provided |
||
410 | for debugging purpose when the fairly new UTF-8 support is sus- |
||
411 | pected to mangle up extracted filenames. |
||
412 | |||
413 | The option -UU allows to entirely disable the recognition of |
||
414 | UTF-8 encoded filenames. The handling of filename codings |
||
415 | within unzip falls back to the behaviour of previous versions. |
||
416 | |||
417 | [old, obsolete usage] leave filenames uppercase if created under |
||
418 | MS-DOS, VMS, etc. See -L above. |
||
419 | |||
420 | -V retain (VMS) file version numbers. VMS files can be stored with |
||
421 | a version number, in the format file.ext;##. By default the |
||
422 | ``;##'' version numbers are stripped, but this option allows |
||
423 | them to be retained. (On file systems that limit filenames to |
||
424 | particularly short lengths, the version numbers may be truncated |
||
425 | or stripped regardless of this option.) |
||
426 | |||
427 | -W [only when WILD_STOP_AT_DIR compile-time option enabled] modi- |
||
428 | fies the pattern matching routine so that both `?' (single-char |
||
429 | wildcard) and `*' (multi-char wildcard) do not match the direc- |
||
430 | tory separator character `/'. (The two-character sequence |
||
431 | ``**'' acts as a multi-char wildcard that includes the directory |
||
432 | separator in its matched characters.) Examples: |
||
433 | |||
434 | "*.c" matches "foo.c" but not "mydir/foo.c" |
||
435 | "**.c" matches both "foo.c" and "mydir/foo.c" |
||
436 | "*/*.c" matches "bar/foo.c" but not "baz/bar/foo.c" |
||
437 | "??*/*" matches "ab/foo" and "abc/foo" |
||
438 | but not "a/foo" or "a/b/foo" |
||
439 | |||
440 | This modified behaviour is equivalent to the pattern matching |
||
441 | style used by the shells of some of UnZip's supported target OSs |
||
442 | (one example is Acorn RISC OS). This option may not be avail- |
||
443 | able on systems where the Zip archive's internal directory sepa- |
||
444 | rator character `/' is allowed as regular character in native |
||
445 | operating system filenames. (Currently, UnZip uses the same |
||
446 | pattern matching rules for both wildcard zipfile specifications |
||
447 | and zip entry selection patterns in most ports. For systems |
||
448 | allowing `/' as regular filename character, the -W option would |
||
449 | not work as expected on a wildcard zipfile specification.) |
||
450 | |||
451 | -X [VMS, Unix, OS/2, NT, Tandem] restore owner/protection info |
||
452 | (UICs and ACL entries) under VMS, or user and group info |
||
453 | (UID/GID) under Unix, or access control lists (ACLs) under cer- |
||
454 | tain network-enabled versions of OS/2 (Warp Server with IBM LAN |
||
455 | Server/Requester 3.0 to 5.0; Warp Connect with IBM Peer 1.0), or |
||
456 | security ACLs under Windows NT. In most cases this will require |
||
457 | special system privileges, and doubling the option (-XX) under |
||
458 | NT instructs unzip to use privileges for extraction; but under |
||
459 | Unix, for example, a user who belongs to several groups can |
||
460 | restore files owned by any of those groups, as long as the user |
||
461 | IDs match his or her own. Note that ordinary file attributes |
||
462 | are always restored--this option applies only to optional, extra |
||
463 | ownership info available on some operating systems. [NT's |
||
464 | access control lists do not appear to be especially compatible |
||
465 | with OS/2's, so no attempt is made at cross-platform portability |
||
466 | of access privileges. It is not clear under what conditions |
||
467 | this would ever be useful anyway.] |
||
468 | |||
469 | -Y [VMS] treat archived file name endings of ``.nnn'' (where |
||
470 | ``nnn'' is a decimal number) as if they were VMS version num- |
||
471 | bers (``;nnn''). (The default is to treat them as file types.) |
||
472 | Example: |
||
473 | "a.b.3" -> "a.b;3". |
||
474 | |||
475 | -$ [MS-DOS, OS/2, NT] restore the volume label if the extraction |
||
476 | medium is removable (e.g., a diskette). Doubling the option |
||
477 | (-$$) allows fixed media (hard disks) to be labelled as well. |
||
478 | By default, volume labels are ignored. |
||
479 | |||
480 | -/ extensions |
||
481 | [Acorn only] overrides the extension list supplied by Unzip$Ext |
||
482 | environment variable. During extraction, filename extensions |
||
483 | that match one of the items in this extension list are swapped |
||
484 | in front of the base name of the extracted file. |
||
485 | |||
486 | -: [all but Acorn, VM/CMS, MVS, Tandem] allows to extract archive |
||
487 | members into locations outside of the current `` extraction root |
||
488 | folder''. For security reasons, unzip normally removes ``parent |
||
489 | dir'' path components (``../'') from the names of extracted |
||
490 | file. This safety feature (new for version 5.50) prevents unzip |
||
491 | from accidentally writing files to ``sensitive'' areas outside |
||
492 | the active extraction folder tree head. The -: option lets |
||
493 | unzip switch back to its previous, more liberal behaviour, to |
||
494 | allow exact extraction of (older) archives that used ``../'' |
||
495 | components to create multiple directory trees at the level of |
||
496 | the current extraction folder. This option does not enable |
||
497 | writing explicitly to the root directory (``/''). To achieve |
||
498 | this, it is necessary to set the extraction target folder to |
||
499 | root (e.g. -d / ). However, when the -: option is specified, it |
||
500 | is still possible to implicitly write to the root directory by |
||
501 | specifying enough ``../'' path components within the zip |
||
502 | archive. Use this option with extreme caution. |
||
503 | |||
504 | -^ [Unix only] allow control characters in names of extracted ZIP |
||
505 | archive entries. On Unix, a file name may contain any (8-bit) |
||
506 | character code with the two exception '/' (directory delimiter) |
||
507 | and NUL (0x00, the C string termination indicator), unless the |
||
508 | specific file system has more restrictive conventions. Gener- |
||
509 | ally, this allows to embed ASCII control characters (or even |
||
510 | sophisticated control sequences) in file names, at least on |
||
511 | 'native' Unix file systems. However, it may be highly suspi- |
||
512 | cious to make use of this Unix "feature". Embedded control |
||
513 | characters in file names might have nasty side effects when dis- |
||
514 | played on screen by some listing code without sufficient filter- |
||
515 | ing. And, for ordinary users, it may be difficult to handle |
||
516 | such file names (e.g. when trying to specify it for open, copy, |
||
517 | move, or delete operations). Therefore, unzip applies a filter |
||
518 | by default that removes potentially dangerous control characters |
||
519 | from the extracted file names. The -^ option allows to override |
||
520 | this filter in the rare case that embedded filename control |
||
521 | characters are to be intentionally restored. |
||
522 | |||
523 | -2 [VMS] force unconditionally conversion of file names to |
||
524 | ODS2-compatible names. The default is to exploit the destina- |
||
525 | tion file system, preserving case and extended file name charac- |
||
526 | ters on an ODS5 destination file system; and applying the |
||
527 | ODS2-compatibility file name filtering on an ODS2 destination |
||
528 | file system. |
||
529 | |||
530 | ENVIRONMENT OPTIONS |
||
531 | unzip's default behavior may be modified via options placed in an envi- |
||
532 | ronment variable. This can be done with any option, but it is probably |
||
533 | most useful with the -a, -L, -C, -q, -o, or -n modifiers: make unzip |
||
534 | auto-convert text files by default, make it convert filenames from |
||
535 | uppercase systems to lowercase, make it match names case-insensitively, |
||
536 | make it quieter, or make it always overwrite or never overwrite files |
||
537 | as it extracts them. For example, to make unzip act as quietly as pos- |
||
538 | sible, only reporting errors, one would use one of the following com- |
||
539 | mands: |
||
540 | |||
541 | Unix Bourne shell: |
||
542 | UNZIP=-qq; export UNZIP |
||
543 | |||
544 | Unix C shell: |
||
545 | setenv UNZIP -qq |
||
546 | |||
547 | OS/2 or MS-DOS: |
||
548 | set UNZIP=-qq |
||
549 | |||
550 | VMS (quotes for lowercase): |
||
551 | define UNZIP_OPTS "-qq" |
||
552 | |||
553 | Environment options are, in effect, considered to be just like any |
||
554 | other command-line options, except that they are effectively the first |
||
555 | options on the command line. To override an environment option, one |
||
556 | may use the ``minus operator'' to remove it. For instance, to override |
||
557 | one of the quiet-flags in the example above, use the command |
||
558 | |||
559 | unzip --q[other options] zipfile |
||
560 | |||
561 | The first hyphen is the normal switch character, and the second is a |
||
562 | minus sign, acting on the q option. Thus the effect here is to cancel |
||
563 | one quantum of quietness. To cancel both quiet flags, two (or more) |
||
564 | minuses may be used: |
||
565 | |||
566 | unzip -t--q zipfile |
||
567 | unzip ---qt zipfile |
||
568 | |||
569 | (the two are equivalent). This may seem awkward or confusing, but it |
||
570 | is reasonably intuitive: just ignore the first hyphen and go from |
||
571 | there. It is also consistent with the behavior of Unix nice(1). |
||
572 | |||
573 | As suggested by the examples above, the default variable names are |
||
574 | UNZIP_OPTS for VMS (where the symbol used to install unzip as a foreign |
||
575 | command would otherwise be confused with the environment variable), and |
||
576 | UNZIP for all other operating systems. For compatibility with zip(1L), |
||
577 | UNZIPOPT is also accepted (don't ask). If both UNZIP and UNZIPOPT are |
||
578 | defined, however, UNZIP takes precedence. unzip's diagnostic option |
||
579 | (-v with no zipfile name) can be used to check the values of all four |
||
580 | possible unzip and zipinfo environment variables. |
||
581 | |||
582 | The timezone variable (TZ) should be set according to the local time- |
||
583 | zone in order for the -f and -u to operate correctly. See the descrip- |
||
584 | tion of -f above for details. This variable may also be necessary to |
||
585 | get timestamps of extracted files to be set correctly. The WIN32 |
||
586 | (Win9x/ME/NT4/2K/XP/2K3) port of unzip gets the timezone configuration |
||
587 | from the registry, assuming it is correctly set in the Control Panel. |
||
588 | The TZ variable is ignored for this port. |
||
589 | |||
590 | DECRYPTION |
||
591 | Encrypted archives are fully supported by Info-ZIP software, but due to |
||
592 | United States export restrictions, de-/encryption support might be dis- |
||
593 | abled in your compiled binary. However, since spring 2000, US export |
||
594 | restrictions have been liberated, and our source archives do now |
||
595 | include full crypt code. In case you need binary distributions with |
||
596 | crypt support enabled, see the file ``WHERE'' in any Info-ZIP source or |
||
597 | binary distribution for locations both inside and outside the US. |
||
598 | |||
599 | Some compiled versions of unzip may not support decryption. To check a |
||
600 | version for crypt support, either attempt to test or extract an |
||
601 | encrypted archive, or else check unzip's diagnostic screen (see the -v |
||
602 | option above) for ``[decryption]'' as one of the special compilation |
||
603 | options. |
||
604 | |||
605 | As noted above, the -P option may be used to supply a password on the |
||
606 | command line, but at a cost in security. The preferred decryption |
||
607 | method is simply to extract normally; if a zipfile member is encrypted, |
||
608 | unzip will prompt for the password without echoing what is typed. |
||
609 | unzip continues to use the same password as long as it appears to be |
||
610 | valid, by testing a 12-byte header on each file. The correct password |
||
611 | will always check out against the header, but there is a 1-in-256 |
||
612 | chance that an incorrect password will as well. (This is a security |
||
613 | feature of the PKWARE zipfile format; it helps prevent brute-force |
||
614 | attacks that might otherwise gain a large speed advantage by testing |
||
615 | only the header.) In the case that an incorrect password is given but |
||
616 | it passes the header test anyway, either an incorrect CRC will be gen- |
||
617 | erated for the extracted data or else unzip will fail during the |
||
618 | extraction because the ``decrypted'' bytes do not constitute a valid |
||
619 | compressed data stream. |
||
620 | |||
621 | If the first password fails the header check on some file, unzip will |
||
622 | prompt for another password, and so on until all files are extracted. |
||
623 | If a password is not known, entering a null password (that is, just a |
||
624 | carriage return or ``Enter'') is taken as a signal to skip all further |
||
625 | prompting. Only unencrypted files in the archive(s) will thereafter be |
||
626 | extracted. (In fact, that's not quite true; older versions of zip(1L) |
||
627 | and zipcloak(1L) allowed null passwords, so unzip checks each encrypted |
||
628 | file to see if the null password works. This may result in ``false |
||
629 | positives'' and extraction errors, as noted above.) |
||
630 | |||
631 | Archives encrypted with 8-bit passwords (for example, passwords with |
||
632 | accented European characters) may not be portable across systems and/or |
||
633 | other archivers. This problem stems from the use of multiple encoding |
||
634 | methods for such characters, including Latin-1 (ISO 8859-1) and OEM |
||
635 | code page 850. DOS PKZIP 2.04g uses the OEM code page; Windows PKZIP |
||
636 | 2.50 uses Latin-1 (and is therefore incompatible with DOS PKZIP); Info- |
||
637 | ZIP uses the OEM code page on DOS, OS/2 and Win3.x ports but ISO coding |
||
638 | (Latin-1 etc.) everywhere else; and Nico Mak's WinZip 6.x does not |
||
639 | allow 8-bit passwords at all. UnZip 5.3 (or newer) attempts to use the |
||
640 | default character set first (e.g., Latin-1), followed by the alternate |
||
641 | one (e.g., OEM code page) to test passwords. On EBCDIC systems, if |
||
642 | both of these fail, EBCDIC encoding will be tested as a last resort. |
||
643 | (EBCDIC is not tested on non-EBCDIC systems, because there are no known |
||
644 | archivers that encrypt using EBCDIC encoding.) ISO character encodings |
||
645 | other than Latin-1 are not supported. The new addition of (partially) |
||
646 | Unicode (resp. UTF-8) support in UnZip 6.0 has not yet been adapted to |
||
647 | the encryption password handling in unzip. On systems that use UTF-8 |
||
648 | as native character encoding, unzip simply tries decryption with the |
||
649 | native UTF-8 encoded password; the built-in attempts to check the pass- |
||
650 | word in translated encoding have not yet been adapted for UTF-8 support |
||
651 | and will consequently fail. |
||
652 | |||
653 | EXAMPLES |
||
654 | To use unzip to extract all members of the archive letters.zip into the |
||
655 | current directory and subdirectories below it, creating any subdirecto- |
||
656 | ries as necessary: |
||
657 | |||
658 | unzip letters |
||
659 | |||
660 | To extract all members of letters.zip into the current directory only: |
||
661 | |||
662 | unzip -j letters |
||
663 | |||
664 | To test letters.zip, printing only a summary message indicating whether |
||
665 | the archive is OK or not: |
||
666 | |||
667 | unzip -tq letters |
||
668 | |||
669 | To test all zipfiles in the current directory, printing only the sum- |
||
670 | maries: |
||
671 | |||
672 | unzip -tq \*.zip |
||
673 | |||
674 | (The backslash before the asterisk is only required if the shell |
||
675 | expands wildcards, as in Unix; double quotes could have been used |
||
676 | instead, as in the source examples below.) To extract to standard out- |
||
677 | put all members of letters.zip whose names end in .tex, auto-converting |
||
678 | to the local end-of-line convention and piping the output into more(1): |
||
679 | |||
680 | unzip -ca letters \*.tex | more |
||
681 | |||
682 | To extract the binary file paper1.dvi to standard output and pipe it to |
||
683 | a printing program: |
||
684 | |||
685 | unzip -p articles paper1.dvi | dvips |
||
686 | |||
687 | To extract all FORTRAN and C source files--*.f, *.c, *.h, and Make- |
||
688 | file--into the /tmp directory: |
||
689 | |||
690 | unzip source.zip "*.[fch]" Makefile -d /tmp |
||
691 | |||
692 | (the double quotes are necessary only in Unix and only if globbing is |
||
693 | turned on). To extract all FORTRAN and C source files, regardless of |
||
694 | case (e.g., both *.c and *.C, and any makefile, Makefile, MAKEFILE or |
||
695 | similar): |
||
696 | |||
697 | unzip -C source.zip "*.[fch]" makefile -d /tmp |
||
698 | |||
699 | To extract any such files but convert any uppercase MS-DOS or VMS names |
||
700 | to lowercase and convert the line-endings of all of the files to the |
||
701 | local standard (without respect to any files that might be marked |
||
702 | ``binary''): |
||
703 | |||
704 | unzip -aaCL source.zip "*.[fch]" makefile -d /tmp |
||
705 | |||
706 | To extract only newer versions of the files already in the current |
||
707 | directory, without querying (NOTE: be careful of unzipping in one |
||
708 | timezone a zipfile created in another--ZIP archives other than those |
||
709 | created by Zip 2.1 or later contain no timezone information, and a |
||
710 | ``newer'' file from an eastern timezone may, in fact, be older): |
||
711 | |||
712 | unzip -fo sources |
||
713 | |||
714 | To extract newer versions of the files already in the current directory |
||
715 | and to create any files not already there (same caveat as previous |
||
716 | example): |
||
717 | |||
718 | unzip -uo sources |
||
719 | |||
720 | To display a diagnostic screen showing which unzip and zipinfo options |
||
721 | are stored in environment variables, whether decryption support was |
||
722 | compiled in, the compiler with which unzip was compiled, etc.: |
||
723 | |||
724 | unzip -v |
||
725 | |||
726 | In the last five examples, assume that UNZIP or UNZIP_OPTS is set to |
||
727 | -q. To do a singly quiet listing: |
||
728 | |||
729 | unzip -l file.zip |
||
730 | |||
731 | To do a doubly quiet listing: |
||
732 | |||
733 | unzip -ql file.zip |
||
734 | |||
735 | (Note that the ``.zip'' is generally not necessary.) To do a standard |
||
736 | listing: |
||
737 | |||
738 | unzip --ql file.zip |
||
739 | or |
||
740 | unzip -l-q file.zip |
||
741 | or |
||
742 | unzip -l--q file.zip |
||
743 | (Extra minuses in options don't hurt.) |
||
744 | |||
745 | TIPS |
||
746 | The current maintainer, being a lazy sort, finds it very useful to |
||
747 | define a pair of aliases: tt for ``unzip -tq'' and ii for ``unzip -Z'' |
||
748 | (or ``zipinfo''). One may then simply type ``tt zipfile'' to test an |
||
749 | archive, something that is worth making a habit of doing. With luck |
||
750 | unzip will report ``No errors detected in compressed data of zip- |
||
751 | file.zip,'' after which one may breathe a sigh of relief. |
||
752 | |||
753 | The maintainer also finds it useful to set the UNZIP environment vari- |
||
754 | able to ``-aL'' and is tempted to add ``-C'' as well. His ZIPINFO |
||
755 | variable is set to ``-z''. |
||
756 | |||
757 | DIAGNOSTICS |
||
758 | The exit status (or error level) approximates the exit codes defined by |
||
759 | PKWARE and takes on the following values, except under VMS: |
||
760 | |||
761 | |||
762 | |||
763 | 1 one or more warning errors were encountered, but process- |
||
764 | ing completed successfully anyway. This includes zip- |
||
765 | files where one or more files was skipped due to unsup- |
||
766 | ported compression method or encryption with an unknown |
||
767 | password. |
||
768 | |||
769 | 2 a generic error in the zipfile format was detected. Pro- |
||
770 | cessing may have completed successfully anyway; some bro- |
||
771 | ken zipfiles created by other archivers have simple work- |
||
772 | arounds. |
||
773 | |||
774 | 3 a severe error in the zipfile format was detected. Pro- |
||
775 | cessing probably failed immediately. |
||
776 | |||
777 | 4 unzip was unable to allocate memory for one or more |
||
778 | buffers during program initialization. |
||
779 | |||
780 | 5 unzip was unable to allocate memory or unable to obtain a |
||
781 | tty to read the decryption password(s). |
||
782 | |||
783 | 6 unzip was unable to allocate memory during decompression |
||
784 | to disk. |
||
785 | |||
786 | 7 unzip was unable to allocate memory during in-memory |
||
787 | decompression. |
||
788 | |||
789 | 8 [currently not used] |
||
790 | |||
791 | 9 the specified zipfiles were not found. |
||
792 | |||
793 | 10 invalid options were specified on the command line. |
||
794 | |||
795 | 11 no matching files were found. |
||
796 | |||
797 | 50 the disk is (or was) full during extraction. |
||
798 | |||
799 | 51 the end of the ZIP archive was encountered prematurely. |
||
800 | |||
801 | 80 the user aborted unzip prematurely with control-C (or |
||
802 | similar) |
||
803 | |||
804 | 81 testing or extraction of one or more files failed due to |
||
805 | unsupported compression methods or unsupported decryp- |
||
806 | tion. |
||
807 | |||
808 | 82 no files were found due to bad decryption password(s). |
||
809 | (If even one file is successfully processed, however, the |
||
810 | exit status is 1.) |
||
811 | |||
812 | VMS interprets standard Unix (or PC) return values as other, scarier- |
||
813 | looking things, so unzip instead maps them into VMS-style status codes. |
||
814 | The current mapping is as follows: 1 (success) for normal exit, |
||
815 | 0x7fff0001 for warning errors, and (0x7fff000? + 16*nor- |
||
816 | mal_unzip_exit_status) for all other errors, where the `?' is 2 (error) |
||
817 | for unzip values 2, 9-11 and 80-82, and 4 (fatal error) for the remain- |
||
818 | ing ones (3-8, 50, 51). In addition, there is a compilation option to |
||
819 | expand upon this behavior: defining RETURN_CODES results in a human- |
||
820 | readable explanation of what the error status means. |
||
821 | |||
822 | BUGS |
||
823 | Multi-part archives are not yet supported, except in conjunction with |
||
824 | zip. (All parts must be concatenated together in order, and then ``zip |
||
825 | -F'' (for zip 2.x) or ``zip -FF'' (for zip 3.x) must be performed on |
||
826 | the concatenated archive in order to ``fix'' it. Also, zip 3.0 and |
||
827 | later can combine multi-part (split) archives into a combined single- |
||
828 | file archive using ``zip -s- inarchive -O outarchive''. See the zip 3 |
||
829 | manual page for more information.) This will definitely be corrected |
||
830 | in the next major release. |
||
831 | |||
832 | Archives read from standard input are not yet supported, except with |
||
833 | funzip (and then only the first member of the archive can be |
||
834 | extracted). |
||
835 | |||
836 | Archives encrypted with 8-bit passwords (e.g., passwords with accented |
||
837 | European characters) may not be portable across systems and/or other |
||
838 | archivers. See the discussion in DECRYPTION above. |
||
839 | |||
840 | unzip's -M (``more'') option tries to take into account automatic wrap- |
||
841 | ping of long lines. However, the code may fail to detect the correct |
||
842 | wrapping locations. First, TAB characters (and similar control |
||
843 | sequences) are not taken into account, they are handled as ordinary |
||
844 | printable characters. Second, depending on the actual system / OS |
||
845 | port, unzip may not detect the true screen geometry but rather rely on |
||
846 | "commonly used" default dimensions. The correct handling of tabs would |
||
847 | require the implementation of a query for the actual tabulator setup on |
||
848 | the output console. |
||
849 | |||
850 | Dates, times and permissions of stored directories are not restored |
||
851 | except under Unix. (On Windows NT and successors, timestamps are now |
||
852 | restored.) |
||
853 | |||
854 | [MS-DOS] When extracting or testing files from an archive on a defec- |
||
855 | tive floppy diskette, if the ``Fail'' option is chosen from DOS's |
||
856 | ``Abort, Retry, Fail?'' message, older versions of unzip may hang the |
||
857 | system, requiring a reboot. This problem appears to be fixed, but con- |
||
858 | trol-C (or control-Break) can still be used to terminate unzip. |
||
859 | |||
860 | Under DEC Ultrix, unzip would sometimes fail on long zipfiles (bad CRC, |
||
861 | not always reproducible). This was apparently due either to a hardware |
||
862 | bug (cache memory) or an operating system bug (improper handling of |
||
863 | page faults?). Since Ultrix has been abandoned in favor of Digital |
||
864 | Unix (OSF/1), this may not be an issue anymore. |
||
865 | |||
866 | [Unix] Unix special files such as FIFO buffers (named pipes), block |
||
867 | devices and character devices are not restored even if they are somehow |
||
868 | represented in the zipfile, nor are hard-linked files relinked. Basi- |
||
869 | cally the only file types restored by unzip are regular files, directo- |
||
870 | ries and symbolic (soft) links. |
||
871 | |||
872 | [OS/2] Extended attributes for existing directories are only updated if |
||
873 | the -o (``overwrite all'') option is given. This is a limitation of |
||
874 | the operating system; because directories only have a creation time |
||
875 | associated with them, unzip has no way to determine whether the stored |
||
876 | attributes are newer or older than those on disk. In practice this may |
||
877 | mean a two-pass approach is required: first unpack the archive nor- |
||
878 | mally (with or without freshening/updating existing files), then |
||
879 | overwrite just the directory entries (e.g., ``unzip -o foo */''). |
||
880 | |||
881 | [VMS] When extracting to another directory, only the [.foo] syntax is |
||
882 | accepted for the -d option; the simple Unix foo syntax is silently |
||
883 | ignored (as is the less common VMS foo.dir syntax). |
||
884 | |||
885 | [VMS] When the file being extracted already exists, unzip's query only |
||
886 | allows skipping, overwriting or renaming; there should additionally be |
||
887 | a choice for creating a new version of the file. In fact, the ``over- |
||
888 | write'' choice does create a new version; the old version is not over- |
||
889 | written or deleted. |
||
890 | |||
891 | SEE ALSO |
||
892 | funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zipinfo(1L), zip- |
||
893 | note(1L), zipsplit(1L) |
||
894 | |||
895 | URL |
||
896 | The Info-ZIP home page is currently at |
||
897 | http://www.info-zip.org/pub/infozip/ |
||
898 | or |
||
899 | ftp://ftp.info-zip.org/pub/infozip/ . |
||
900 | |||
901 | AUTHORS |
||
902 | The primary Info-ZIP authors (current semi-active members of the Zip- |
||
903 | Bugs workgroup) are: Ed Gordon (Zip, general maintenance, shared code, |
||
904 | Zip64, Win32, Unix, Unicode); Christian Spieler (UnZip maintenance |
||
905 | coordination, VMS, MS-DOS, Win32, shared code, general Zip and UnZip |
||
906 | integration and optimization); Onno van der Linden (Zip); Mike White |
||
907 | (Win32, Windows GUI, Windows DLLs); Kai Uwe Rommel (OS/2, Win32); |
||
908 | Steven M. Schweda (VMS, Unix, support of new features); Paul Kienitz |
||
909 | (Amiga, Win32, Unicode); Chris Herborth (BeOS, QNX, Atari); Jonathan |
||
910 | Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC OS); Harald Denker (Atari, |
||
911 | MVS); John Bush (Solaris, Amiga); Hunter Goatley (VMS, Info-ZIP Site |
||
912 | maintenance); Steve Salisbury (Win32); Steve Miller (Windows CE GUI), |
||
913 | Johnny Lee (MS-DOS, Win32, Zip64); and Dave Smith (Tandem NSK). |
||
914 | |||
915 | The following people were former members of the Info-ZIP development |
||
916 | group and provided major contributions to key parts of the current |
||
917 | code: Greg ``Cave Newt'' Roelofs (UnZip, unshrink decompression); Jean- |
||
918 | loup Gailly (deflate compression); Mark Adler (inflate decompression, |
||
919 | fUnZip). |
||
920 | |||
921 | The author of the original unzip code upon which Info-ZIP's was based |
||
922 | is Samuel H. Smith; Carl Mascott did the first Unix port; and David P. |
||
923 | Kirschbaum organized and led Info-ZIP in its early days with Keith |
||
924 | Petersen hosting the original mailing list at WSMR-SimTel20. The full |
||
925 | list of contributors to UnZip has grown quite large; please refer to |
||
926 | the CONTRIBS file in the UnZip source distribution for a relatively |
||
927 | complete version. |
||
928 | |||
929 | VERSIONS |
||
930 | v1.2 15 Mar 89 Samuel H. Smith |
||
931 | v2.0 9 Sep 89 Samuel H. Smith |
||
932 | v2.x fall 1989 many Usenet contributors |
||
933 | v3.0 1 May 90 Info-ZIP (DPK, consolidator) |
||
934 | v3.1 15 Aug 90 Info-ZIP (DPK, consolidator) |
||
935 | v4.0 1 Dec 90 Info-ZIP (GRR, maintainer) |
||
936 | v4.1 12 May 91 Info-ZIP |
||
937 | v4.2 20 Mar 92 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
938 | v5.0 21 Aug 92 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
939 | v5.01 15 Jan 93 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
940 | v5.1 7 Feb 94 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
941 | v5.11 2 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
942 | v5.12 28 Aug 94 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
943 | v5.2 30 Apr 96 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
944 | v5.3 22 Apr 97 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
945 | v5.31 31 May 97 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
946 | v5.32 3 Nov 97 Info-ZIP (Zip-Bugs subgroup, GRR) |
||
947 | v5.4 28 Nov 98 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
948 | v5.41 16 Apr 00 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
949 | v5.42 14 Jan 01 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
950 | v5.5 17 Feb 02 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
951 | v5.51 22 May 04 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
952 | v5.52 28 Feb 05 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
953 | v6.0 20 Apr 09 Info-ZIP (Zip-Bugs subgroup, SPC) |
||
954 | |||
955 | Info-ZIP 20 April 2009 (v6.0) UNZIP(1L) |