5
unzip - list, test and extract compressed files in a ZIP
4
unzip - list, test and extract compressed files in a ZIP archive
9
unzip [-Z] [-cflptTuvz[abjnoqsCKLMVWX$/:]] file[.zip]
10
[file(s) ...] [-x xfile(s) ...] [-d exdir]
7
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...]
8
[-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
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.
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:
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:
33
28
* matches a sequence of 0 or more characters
35
30
? 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
45
considered a match). To specify a verbatim
46
left bracket, the three-character sequence
47
``[[]'' has to be used.
49
(Be sure to quote any character that might other-
50
wise be interpreted or modified by the operating
51
system, particularly under Unix and VMS.) If no
52
matches are found, the specification is assumed to
53
be a literal filename; and if that also fails, the
54
suffix .zip is appended. Note that self-extracting
55
ZIP files are supported, as with any other ZIP
56
archive; just specify the .exe suffix (if any)
59
Info-ZIP 28 February 2005 (v5.52) 1
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
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.
64
An optional list of archive members to be pro-
65
cessed, separated by spaces. (VMS versions com-
66
piled with VMSCLI defined must delimit files with
67
commas instead. See -v in OPTIONS below.) Regular
68
expressions (wildcards) may be used to match multi-
69
ple members; see above. Again, be sure to quote
70
expressions that would otherwise be expanded or
71
modified by the operating system.
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.
74
An optional list of archive members to be excluded
75
from processing. Since wildcard characters nor-
76
mally match (`/') directory separators (for exep-
77
tions see the option -W, this option may be used to
78
exclude any files that are in subdirectories. For
79
example, ``unzip foo *.[ch] -x */*'' would extract
80
all C source files in the main directory, but none
81
in any subdirectories. Without the -x option, all
82
C source files in all directories within the zip-
83
file would be extracted.
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.
86
An optional directory to which to extract files.
87
By default, all files and subdirectories are recre-
88
ated in the current directory; the -d option allows
89
extraction in an arbitrary directory (always assum-
90
ing one has permission to write to the directory).
91
This option need not appear at the end of the com-
92
mand line; it is also accepted before the zipfile
93
specification (with the normal options), immedi-
94
ately after the zipfile specification, or between
95
the file(s) and the -x option. The option and
96
directory may be concatenated without any white
97
space between them, but note that this may cause
98
normal shell behavior to be suppressed. In partic-
99
ular, ``-d ~'' (tilde) is expanded by Unix C shells
100
into the name of the user's home directory, but
101
``-d~'' is treated as a literal subdirectory ``~''
102
of the current directory.
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-
105
Note that, in order to support obsolescent hardware,
106
unzip's usage screen is limited to 22 or 23 lines and
107
should therefore be considered only a reminder of the
108
basic unzip syntax rather than an exhaustive list of all
109
possible flags. The exhaustive list follows:
111
-Z zipinfo(1L) mode. If the first option on the com-
112
mand line is -Z, the remaining options are taken to
113
be zipinfo(1L) options. See the appropriate manual
114
page for a description of these options.
116
-A [OS/2, Unix DLL] print extended help for the DLL's
118
Info-ZIP 28 February 2005 (v5.52) 2
122
programming interface (API).
124
-c extract files to stdout/screen (``CRT''). This
125
option is similar to the -p option except that the
126
name of each file is printed as it is extracted,
127
the -a option is allowed, and ASCII-EBCDIC conver-
128
sion is automatically performed if appropriate.
129
This option is not listed in the unzip usage
132
-f freshen existing files, i.e., extract only those
133
files that already exist on disk and that are newer
134
than the disk copies. By default unzip queries
135
before overwriting, but the -o option may be used
136
to suppress the queries. Note that under many
137
operating systems, the TZ (timezone) environment
138
variable must be set correctly in order for -f and
139
-u to work properly (under Unix the variable is
140
usually set automatically). The reasons for this
141
are somewhat subtle but have to do with the differ-
142
ences between DOS-format file times (always local
143
time) and Unix-format times (always in GMT/UTC) and
144
the necessity to compare the two. A typical TZ
145
value is ``PST8PDT'' (US Pacific time with auto-
146
matic adjustment for Daylight Savings Time or
149
-l list archive files (short format). The names,
150
uncompressed file sizes and modification dates and
151
times of the specified files are printed, along
152
with totals for all files specified. If UnZip was
153
compiled with OS2_EAS defined, the -l option also
154
lists columns for the sizes of stored OS/2 extended
155
attributes (EAs) and OS/2 access control lists
156
(ACLs). In addition, the zipfile comment and indi-
157
vidual file comments (if any) are displayed. If a
158
file was archived from a single-case file system
159
(for example, the old MS-DOS FAT file system) and
160
the -L option was given, the filename is converted
161
to lowercase and is prefixed with a caret (^).
163
-p extract files to pipe (stdout). Nothing but the
164
file data is sent to stdout, and the files are
165
always extracted in binary format, just as they are
166
stored (no conversions).
168
-t test archive files. This option extracts each
169
specified file in memory and compares the CRC
170
(cyclic redundancy check, an enhanced checksum) of
171
the expanded file with the original file's stored
174
-T [most OSes] set the timestamp on the archive(s) to
175
that of the newest file in each one. This
177
Info-ZIP 28 February 2005 (v5.52) 3
181
corresponds to zip's -go option except that it can
182
be used on wildcard zipfiles (e.g., ``unzip -T
183
\*.zip'') and is much faster.
185
-u update existing files and create new ones if
186
needed. This option performs the same function as
187
the -f option, extracting (with query) files that
188
are newer than those with the same name on disk,
189
and in addition it extracts those files that do not
190
already exist on disk. See -f above for informa-
191
tion on setting the timezone properly.
193
-v be verbose or print diagnostic version info. This
194
option has evolved and now behaves as both an
195
option and a modifier. As an option it has two
196
purposes: when a zipfile is specified with no
197
other options, -v lists archive files verbosely,
198
adding to the basic -l info the compression method,
199
compressed size, compression ratio and 32-bit CRC.
200
In contrast to most of the competing utilities,
201
unzip removes the 12 additional header bytes of
202
encrypted entries from the compressed size numbers.
203
Therefore, compressed size and compression ratio
204
figures are independent of the entry's encryption
205
status and show the correct compression perfor-
206
mance. (The complete size of the encryped com-
207
pressed data stream for zipfile entries is reported
208
by the more verbose zipinfo(1L) reports, see the
209
separate manual.) When no zipfile is specified
210
(that is, the complete command is simply ``unzip
211
-v''), a diagnostic screen is printed. In addition
212
to the normal header with release date and version,
213
unzip lists the home Info-ZIP ftp site and where to
214
find a list of other ftp and non-ftp sites; the
215
target operating system for which it was compiled,
216
as well as (possibly) the hardware on which it was
217
compiled, the compiler and version used, and the
218
compilation date; any special compilation options
219
that might affect the program's operation (see also
220
DECRYPTION below); and any options stored in envi-
221
ronment variables that might do the same (see ENVI-
222
RONMENT OPTIONS below). As a modifier it works in
223
conjunction with other options (e.g., -t) to pro-
224
duce more verbose or debugging output; this is not
225
yet fully implemented but will be in future
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:
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
95
-A [OS/2, Unix DLL] print extended help for the DLL's programming
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.
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
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 (^).
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).
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
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.
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.
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.
228
179
-z display only the archive comment.
231
-a convert text files. Ordinarily all files are
232
extracted exactly as they are stored (as ``binary''
233
files). The -a option causes files identified by
234
zip as text files (those with the `t' label in
236
Info-ZIP 28 February 2005 (v5.52) 4
240
zipinfo listings, rather than `b') to be automati-
241
cally extracted as such, converting line endings,
242
end-of-file characters and the character set itself
243
as necessary. (For example, Unix files use line
244
feeds (LFs) for end-of-line (EOL) and have no end-
245
of-file (EOF) marker; Macintoshes use carriage
246
returns (CRs) for EOLs; and most PC operating sys-
247
tems use CR+LF for EOLs and control-Z for EOF. In
248
addition, IBM mainframes and the Michigan Terminal
249
System use EBCDIC rather than the more common ASCII
250
character set, and NT supports Unicode.) Note that
251
zip's identification of text files is by no means
252
perfect; some ``text'' files may actually be binary
253
and vice versa. unzip therefore prints ``[text]''
254
or ``[binary]'' as a visual check for each file it
255
extracts when using the -a option. The -aa option
256
forces all files to be extracted as text, regard-
257
less of the supposed file type.
259
-b [general] treat all files as binary (no text con-
260
versions). This is a shortcut for ---a.
262
-b [Tandem] force the creation files with filecode
263
type 180 ('C') when extracting Zip entries marked
264
as "text". (On Tandem, -a is enabled by default,
267
-b [VMS] auto-convert binary files (see -a above) to
268
fixed-length, 512-byte record format. Doubling the
269
option (-bb) forces all files to be extracted in
270
this format. When extracting to standard output (-c
271
or -p option in effect), the default conversion of
272
text record delimiters is disabled for binary (-b)
273
resp. all (-bb) files.
275
-B [Unix only, and only if compiled with UNIXBACKUP
276
defined] save a backup copy of each overwritten
277
file with a tilde appended (e.g., the old copy of
278
``foo'' is renamed to ``foo~''). This is similar
279
to the default behavior of emacs(1) in many loca-
282
-C use case-insensitive matching for the selection of
283
archive entries from the command-line list of
284
extract selection patterns. unzip's philosophy is
285
``you get what you ask for'' (this is also respon-
286
sible for the -L/-U change; see the relevant
287
options below). Because some file systems are
288
fully case-sensitive (notably those under the Unix
289
operating system) and because both ZIP archives and
290
unzip itself are portable across platforms, unzip's
291
default behavior is to match both wildcard and lit-
292
eral filenames case-sensitively. That is, specify-
293
ing ``makefile'' on the command line will only
295
Info-ZIP 28 February 2005 (v5.52) 5
299
match ``makefile'' in the archive, not ``Makefile''
300
or ``MAKEFILE'' (and similarly for wildcard speci-
301
fications). Since this does not correspond to the
302
behavior of many other operating/file systems (for
303
example, OS/2 HPFS, which preserves mixed case but
304
is not sensitive to it), the -C option may be used
305
to force all filename matches to be case-insensi-
306
tive. In the example above, all three files would
307
then match ``makefile'' (or ``make*'', or similar).
308
The -C option affects file specs in both the normal
309
file list and the excluded-file list (xlist).
311
Please note that the -L option does neither affect
312
the search for the zipfile(s) nor the matching of
313
archive entries to existing files on the extraction
314
path. On a case-sensitive file system, unzip will
315
never try to overwrite a file ``FOO'' when extract-
316
ing an entry ``foo''!
318
-E [MacOS only] display contents of MacOS extra field
319
during restore operation.
321
-F [Acorn only] suppress removal of NFS filetype
322
extension from stored filenames.
324
-F [non-Acorn systems supporting long filenames with
325
embedded commas, and only if compiled with
326
ACORN_FTYPE_NFS defined] translate filetype infor-
327
mation from ACORN RISC OS extra field blocks into a
328
NFS filetype extension and append it to the names
329
of the extracted files. (When the stored filename
330
appears to already have an appended NFS filetype
331
extension, it is replaced by the info from the
334
-i [MacOS only] ignore filenames stored in MacOS extra
335
fields. Instead, the most compatible filename
336
stored in the generic part of the entry's header is
339
-j junk paths. The archive's directory structure is
340
not recreated; all files are deposited in the
341
extraction directory (by default, the current one).
343
-J [BeOS only] junk file attributes. The file's BeOS
344
file attributes are not restored, just the file's
347
-J [MacOS only] ignore MacOS extra fields. All Macin-
348
tosh specific info is skipped. Data-fork and
349
resource-fork are restored as separate files.
351
-K [AtheOS, BeOS, Unix only] retain SUID/SGID/Tacky
352
file attributes. Without this flag, these
354
Info-ZIP 28 February 2005 (v5.52) 6
358
attribute bits are cleared for security reasons.
360
-L convert to lowercase any filename originating on an
361
uppercase-only operating system or file system.
362
(This was unzip's default behavior in releases
363
prior to 5.11; the new default behavior is identi-
364
cal to the old behavior with the -U option, which
365
is now obsolete and will be removed in a future
366
release.) Depending on the archiver, files
367
archived under single-case file systems (VMS, old
368
MS-DOS FAT, etc.) may be stored as all-uppercase
369
names; this can be ugly or inconvenient when
370
extracting to a case-preserving file system such as
371
OS/2 HPFS or a case-sensitive one such as under
372
Unix. By default unzip lists and extracts such
373
filenames exactly as they're stored (excepting
374
truncation, conversion of unsupported characters,
375
etc.); this option causes the names of all files
376
from certain systems to be converted to lowercase.
377
The -LL option forces conversion of every filename
378
to lowercase, regardless of the originating file
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.
201
-b [general] treat all files as binary (no text conversions). This
202
is a shortcut for ---a.
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).
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
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
227
Example: the old copy of ``foo'' is renamed to ``foo~''.
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.
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).
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''!
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.
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.)
290
-E [MacOS only] display contents of MacOS extra field during
293
-F [Acorn only] suppress removal of NFS filetype extension from
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.)
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.
308
-j junk paths. The archive's directory structure is not recreated;
309
all files are deposited in the extraction directory (by default,
312
-J [BeOS only] junk file attributes. The file's BeOS file
313
attributes are not restored, just the file's data.
315
-J [MacOS only] ignore MacOS extra fields. All Macintosh specific
316
info is skipped. Data-fork and resource-fork are restored as
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.
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
381
-M pipe all output through an internal pager similar
382
to the Unix more(1) command. At the end of a
383
screenful of output, unzip pauses with a
384
``--More--'' prompt; the next screenful may be
385
viewed by pressing the Enter (Return) key or the
386
space bar. unzip can be terminated by pressing the
387
``q'' key and, on some systems, the Enter/Return
388
key. Unlike Unix more(1), there is no forward-
389
searching or editing capability. Also, unzip
390
doesn't notice if long lines wrap at the edge of
391
the screen, effectively resulting in the printing
392
of two or more lines and the likelihood that some
393
text will scroll off the top of the screen before
394
being viewed. On some systems the number of avail-
395
able lines on the screen is not detected, in which
396
case unzip assumes the height is 24 lines.
398
-n never overwrite existing files. If a file already
399
exists, skip the extraction of that file without
400
prompting. By default unzip queries before
401
extracting any file that already exists; the user
402
may choose to overwrite only the current file,
403
overwrite all files, skip extraction of the current
404
file, skip extraction of all existing files, or
405
rename the current file.
407
-N [Amiga] extract file comments as Amiga filenotes.
408
File comments are created with the -c option of
409
zip(1L), or with the -N option of the Amiga port of
410
zip(1L), which stores filenotes as comments.
412
Info-ZIP 28 February 2005 (v5.52) 7
416
-o overwrite existing files without prompting. This
417
is a dangerous option, so use it with care. (It is
418
often used with -f, however, and is the only way to
419
overwrite directory EAs under OS/2.)
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
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.
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-
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
422
use password to decrypt encrypted zipfile entries
423
(if any). THIS IS INSECURE! Many multi-user oper-
424
ating systems provide ways for any user to see the
425
current command line of any other user; even on
426
stand-alone systems there is always the threat of
427
over-the-shoulder peeking. Storing the plaintext
428
password as part of a command line in an automated
429
script is even worse. Whenever possible, use the
430
non-echoing, interactive prompt to enter passwords.
431
(And where security is truly important, use strong
432
encryption such as Pretty Good Privacy instead of
433
the relatively weak encryption provided by standard
436
-q perform operations quietly (-qq = even quieter).
437
Ordinarily unzip prints the names of the files it's
438
extracting or testing, the extraction methods, any
439
file or zipfile comments that may be stored in the
440
archive, and possibly a summary when finished with
441
each archive. The -q[q] options suppress the
442
printing of some or all of these messages.
444
-s [OS/2, NT, MS-DOS] convert spaces in filenames to
445
underscores. Since all PC operating systems allow
446
spaces in filenames, unzip by default extracts
447
filenames with spaces intact (e.g.,
448
``EA DATA. SF''). This can be awkward, however,
449
since MS-DOS in particular does not gracefully sup-
450
port spaces in filenames. Conversion of spaces to
451
underscores can eliminate the awkwardness in some
454
-U (obsolete; to be removed in a future release) leave
455
filenames uppercase if created under MS-DOS, VMS,
458
-V retain (VMS) file version numbers. VMS files can
459
be stored with a version number, in the format
460
file.ext;##. By default the ``;##'' version num-
461
bers are stripped, but this option allows them to
462
be retained. (On file systems that limit filenames
463
to particularly short lengths, the version numbers
464
may be truncated or stripped regardless of this
467
-W [only when WILD_STOP_AT_DIR compile-time option
468
enabled] modifies the pattern matching routine so
469
that both `?' (single-char wildcard) and `*'
471
Info-ZIP 28 February 2005 (v5.52) 8
475
(multi-char wildcard) do not match the directory
476
separator character `/'. (The two-character
477
sequence ``**'' acts as a multi-char wildcard that
478
includes the directory separator in its matched
479
characters.) Examples:
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-
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.
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-
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.)
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.
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.
417
[old, obsolete usage] leave filenames uppercase if created under
418
MS-DOS, VMS, etc. See -L above.
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.)
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:
481
434
"*.c" matches "foo.c" but not "mydir/foo.c"
482
435
"**.c" matches both "foo.c" and "mydir/foo.c"
484
437
"??*/*" matches "ab/foo" and "abc/foo"
485
438
but not "a/foo" or "a/b/foo"
487
This modified behaviour is equivalent to the pat-
488
tern matching style used by the shells of some of
489
UnZip's supported target OSs (one example is Acorn
490
RISC OS). This option may not be available on sys-
491
tems where the Zip archive's interal directory sep-
492
arator character `/' is allowed as regular charac-
493
ter in native operating system filenames. (Cur-
494
rently, UnZip uses the same pattern matching rules
495
for both wildcard zipfile specifications and zip
496
entry selection patterns in most ports. For sys-
497
tems allowing `/' as regular filename character,
498
the -W option would not work as expected on a wild-
499
card zipfile specification.)
501
-X [VMS, Unix, OS/2, NT] restore owner/protection info
502
(UICs) under VMS, or user and group info (UID/GID)
503
under Unix, or access control lists (ACLs) under
504
certain network-enabled versions of OS/2 (Warp
505
Server with IBM LAN Server/Requester 3.0 to 5.0;
506
Warp Connect with IBM Peer 1.0), or security ACLs
507
under Windows NT. In most cases this will require
508
special system privileges, and doubling the option
509
(-XX) under NT instructs unzip to use privileges
510
for extraction; but under Unix, for example, a user
511
who belongs to several groups can restore files
512
owned by any of those groups, as long as the user
513
IDs match his or her own. Note that ordinary file
514
attributes are always restored--this option applies
515
only to optional, extra ownership info available on
516
some operating systems. [NT's access control lists
517
do not appear to be especially compatible with
518
OS/2's, so no attempt is made at cross-platform
519
portability of access privileges. It is not clear
520
under what conditions this would ever be useful
523
-$ [MS-DOS, OS/2, NT] restore the volume label if the
524
extraction medium is removable (e.g., a diskette).
525
Doubling the option (-$$) allows fixed media (hard
526
disks) to be labelled as well. By default, volume
529
Info-ZIP 28 February 2005 (v5.52) 9
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.)
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.]
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.)
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.
534
[Acorn only] overrides the extension list supplied
535
by Unzip$Ext environment variable. During extrac-
536
tion, filename extensions that match one of the
537
items in this extension list are swapped in front
538
of the base name of the extracted file.
540
-: [all but Acorn, VM/CMS, MVS, Tandem] allows to
541
extract archive members into locations outside of
542
the current `` extraction root folder''. For secu-
543
rity reasons, unzip normally removes ``parent dir''
544
path components (``../'') from the names of
545
extracted file. This safety feature (new for ver-
546
sion 5.50) prevents unzip from accidentally writing
547
files to ``sensitive'' areas outside the active
548
extraction folder tree head. The -: option lets
549
unzip switch back to its previous, more liberal
550
behaviour, to allow exact extraction of (older)
551
archives that used ``../'' components to create
552
multiple directory trees at the level of the cur-
553
rent extraction folder. This option does not
554
enable writing explicitly to the root directory
555
(``/''). To achieve this, it is necessary to set
556
the extraction target folder to root (e.g. -d / ).
557
However, when the -: option is specified, it is
558
still possible to implicitly write to the root
559
directory by specifiying enough ``../'' path compo-
560
nents within the zip archive. Use this option with
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.
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.
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.
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
563
530
ENVIRONMENT OPTIONS
564
unzip's default behavior may be modified via options
565
placed in an environment variable. This can be done with
566
any option, but it is probably most useful with the -a,
567
-L, -C, -q, -o, or -n modifiers: make unzip auto-convert
568
text files by default, make it convert filenames from
569
uppercase systems to lowercase, make it match names case-
570
insensitively, make it quieter, or make it always over-
571
write or never overwrite files as it extracts them. For
572
example, to make unzip act as quietly as possible, only
573
reporting errors, one would use one of the following com-
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-
576
541
Unix Bourne shell:
585
550
VMS (quotes for lowercase):
586
define UNZIP_OPTS ""-qq""
588
Info-ZIP 28 February 2005 (v5.52) 10
592
Environment options are, in effect, considered to be just
593
like any other command-line options, except that they are
594
effectively the first options on the command line. To
595
override an environment option, one may use the ``minus
596
operator'' to remove it. For instance, to override one of
597
the quiet-flags in the example above, use the command
551
define UNZIP_OPTS "-qq"
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
599
559
unzip --q[other options] zipfile
601
The first hyphen is the normal switch character, and the
602
second is a minus sign, acting on the q option. Thus the
603
effect here is to cancel one quantum of quietness. To
604
cancel both quiet flags, two (or more) minuses may be
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)
607
566
unzip -t--q zipfile
608
567
unzip ---qt zipfile
610
(the two are equivalent). This may seem awkward or con-
611
fusing, but it is reasonably intuitive: just ignore the
612
first hyphen and go from there. It is also consistent
613
with the behavior of Unix nice(1).
615
As suggested by the examples above, the default variable
616
names are UNZIP_OPTS for VMS (where the symbol used to
617
install unzip as a foreign command would otherwise be con-
618
fused with the environment variable), and UNZIP for all
619
other operating systems. For compatibility with zip(1L),
620
UNZIPOPT is also accepted (don't ask). If both UNZIP and
621
UNZIPOPT are defined, however, UNZIP takes precedence.
622
unzip's diagnostic option (-v with no zipfile name) can be
623
used to check the values of all four possible unzip and
624
zipinfo environment variables.
626
The timezone variable (TZ) should be set according to the
627
local timezone in order for the -f and -u to operate cor-
628
rectly. See the description of -f above for details.
629
This variable may also be necessary to get timestamps of
630
extracted files to be set correctly. The WIN32
631
(Win9x/ME/NT4/2K/XP/2K3) port of unzip gets the timezone
632
configuration from the registry, assuming it is correctly
633
set in the Control Panel. The TZ variable is ignored for
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).
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.
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.
637
Encrypted archives are fully supported by Info-ZIP soft-
638
ware, but due to United States export restrictions,
639
de-/encryption support might be disabled in your compiled
640
binary. However, since spring 2000, US export restric-
641
tions have been liberated, and our source archives do now
642
include full crypt code. In case you need binary distri-
643
butions with crypt support enabled, see the file ``WHERE''
644
in any Info-ZIP source or binary distribution for loca-
645
tions both inside and outside the US.
647
Info-ZIP 28 February 2005 (v5.52) 11
651
Some compiled versions of unzip may not support decryp-
652
tion. To check a version for crypt support, either
653
attempt to test or extract an encrypted archive, or else
654
check unzip's diagnostic screen (see the -v option above)
655
for ``[decryption]'' as one of the special compilation
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.
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
658
As noted above, the -P option may be used to supply a
659
password on the command line, but at a cost in security.
660
The preferred decryption method is simply to extract nor-
661
mally; if a zipfile member is encrypted, unzip will prompt
662
for the password without echoing what is typed. unzip
663
continues to use the same password as long as it appears
664
to be valid, by testing a 12-byte header on each file.
665
The correct password will always check out against the
666
header, but there is a 1-in-256 chance that an incorrect
667
password will as well. (This is a security feature of the
668
PKWARE zipfile format; it helps prevent brute-force
669
attacks that might otherwise gain a large speed advantage
670
by testing only the header.) In the case that an incor-
671
rect password is given but it passes the header test any-
672
way, either an incorrect CRC will be generated for the
673
extracted data or else unzip will fail during the extrac-
674
tion because the ``decrypted'' bytes do not constitute a
675
valid compressed data stream.
677
If the first password fails the header check on some file,
678
unzip will prompt for another password, and so on until
679
all files are extracted. If a password is not known,
680
entering a null password (that is, just a carriage return
681
or ``Enter'') is taken as a signal to skip all further
682
prompting. Only unencrypted files in the archive(s) will
683
thereafter be extracted. (In fact, that's not quite true;
684
older versions of zip(1L) and zipcloak(1L) allowed null
685
passwords, so unzip checks each encrypted file to see if
686
the null password works. This may result in ``false posi-
687
tives'' and extraction errors, as noted above.)
689
Archives encrypted with 8-bit passwords (for example,
690
passwords with accented European characters) may not be
691
portable across systems and/or other archivers. This
692
problem stems from the use of multiple encoding methods
693
for such characters, including Latin-1 (ISO 8859-1) and
694
OEM code page 850. DOS PKZIP 2.04g uses the OEM code
695
page; Windows PKZIP 2.50 uses Latin-1 (and is therefore
696
incompatible with DOS PKZIP); Info-ZIP uses the OEM code
697
page on DOS, OS/2 and Win3.x ports but Latin-1 everywhere
698
else; and Nico Mak's WinZip 6.x does not allow 8-bit pass-
699
words at all. UnZip 5.3 (or newer) attempts to use the
700
default character set first (e.g., Latin-1), followed by
701
the alternate one (e.g., OEM code page) to test passwords.
702
On EBCDIC systems, if both of these fail, EBCDIC encoding
703
will be tested as a last resort. (EBCDIC is not tested on
704
non-EBCDIC systems, because there are no known archivers
706
Info-ZIP 28 February 2005 (v5.52) 12
710
that encrypt using EBCDIC encoding.) ISO character encod-
711
ings other than Latin-1 are not supported.
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.
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.)
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.
714
To use unzip to extract all members of the archive let-
715
ters.zip into the current directory and subdirectories
716
below it, creating any subdirectories as necessary:
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-
720
To extract all members of letters.zip into the current
660
To extract all members of letters.zip into the current directory only:
725
To test letters.zip, printing only a summary message indi-
726
cating whether the archive is OK or not:
664
To test letters.zip, printing only a summary message indicating whether
665
the archive is OK or not:
728
667
unzip -tq letters
730
To test all zipfiles in the current directory, printing
669
To test all zipfiles in the current directory, printing only the sum-
735
(The backslash before the asterisk is only required if the
736
shell expands wildcards, as in Unix; double quotes could
737
have been used instead, as in the source examples
738
below.) To extract to standard output all members of let-
739
ters.zip whose names end in .tex, auto-converting to the
740
local end-of-line convention and piping the output into
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):
743
680
unzip -ca letters \*.tex | more
745
To extract the binary file paper1.dvi to standard output
746
and pipe it to a printing program:
682
To extract the binary file paper1.dvi to standard output and pipe it to
748
685
unzip -p articles paper1.dvi | dvips
750
To extract all FORTRAN and C source files--*.f, *.c, *.h,
751
and Makefile--into the /tmp directory:
687
To extract all FORTRAN and C source files--*.f, *.c, *.h, and Make-
688
file--into the /tmp directory:
753
690
unzip source.zip "*.[fch]" Makefile -d /tmp
755
(the double quotes are necessary only in Unix and only if
756
globbing is turned on). To extract all FORTRAN and C
757
source files, regardless of case (e.g., both *.c and *.C,
758
and any makefile, Makefile, MAKEFILE or similar):
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
760
697
unzip -C source.zip "*.[fch]" makefile -d /tmp
762
To extract any such files but convert any uppercase MS-DOS
763
or VMS names to lowercase and convert the line-endings of
765
Info-ZIP 28 February 2005 (v5.52) 13
769
all of the files to the local standard (without respect to
770
any files that might be marked ``binary''):
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
772
704
unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
774
To extract only newer versions of the files already in the
775
current directory, without querying (NOTE: be careful of
776
unzipping in one timezone a zipfile created in
777
another--ZIP archives other than those created by Zip 2.1
778
or later contain no timezone information, and a ``newer''
779
file from an eastern timezone may, in fact, be older):
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):
781
712
unzip -fo sources
783
To extract newer versions of the files already in the cur-
784
rent directory and to create any files not already there
785
(same caveat as previous example):
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
787
718
unzip -uo sources
789
To display a diagnostic screen showing which unzip and
790
zipinfo options are stored in environment variables,
791
whether decryption support was compiled in, the compiler
792
with which unzip was compiled, etc.:
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.:
796
In the last five examples, assume that UNZIP or UNZIP_OPTS
797
is set to -q. To do a singly quiet listing:
726
In the last five examples, assume that UNZIP or UNZIP_OPTS is set to
727
-q. To do a singly quiet listing:
799
729
unzip -l file.zip
813
743
(Extra minuses in options don't hurt.)
816
The current maintainer, being a lazy sort, finds it very
817
useful to define a pair of aliases: tt for ``unzip -tq''
818
and ii for ``unzip -Z'' (or ``zipinfo''). One may then
819
simply type ``tt zipfile'' to test an archive, something
820
that is worth making a habit of doing. With luck unzip
821
will report ``No errors detected in compressed data of
822
zipfile.zip,'' after which one may breathe a sigh of
824
Info-ZIP 28 February 2005 (v5.52) 14
830
The maintainer also finds it useful to set the UNZIP envi-
831
ronment variable to ``-aL'' and is tempted to add ``-C''
832
as well. His ZIPINFO variable is set to ``-z''.
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.
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''.
835
The exit status (or error level) approximates the exit
836
codes defined by PKWARE and takes on the following values,
758
The exit status (or error level) approximates the exit codes defined by
759
PKWARE and takes on the following values, except under VMS:
839
761
0 normal; no errors or warnings detected.
841
1 one or more warning errors were encountered,
842
but processing completed successfully any-
843
way. This includes zipfiles where one or
844
more files was skipped due to unsupported
845
compression method or encryption with an
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
848
2 a generic error in the zipfile format was
849
detected. Processing may have completed
850
successfully anyway; some broken zipfiles
851
created by other archivers have simple work-
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-
854
3 a severe error in the zipfile format was
855
detected. Processing probably failed imme-
858
4 unzip was unable to allocate memory for one
859
or more buffers during program initializa-
862
5 unzip was unable to allocate memory or
863
unable to obtain a tty to read the decryp-
866
6 unzip was unable to allocate memory during
867
decompression to disk.
869
7 unzip was unable to allocate memory during
870
in-memory decompression.
774
3 a severe error in the zipfile format was detected. Pro-
775
cessing probably failed immediately.
777
4 unzip was unable to allocate memory for one or more
778
buffers during program initialization.
780
5 unzip was unable to allocate memory or unable to obtain a
781
tty to read the decryption password(s).
783
6 unzip was unable to allocate memory during decompression
786
7 unzip was unable to allocate memory during in-memory
872
789
8 [currently not used]
874
791
9 the specified zipfiles were not found.
876
10 invalid options were specified on the com-
793
10 invalid options were specified on the command line.
879
795
11 no matching files were found.
881
797
50 the disk is (or was) full during extraction.
883
Info-ZIP 28 February 2005 (v5.52) 15
887
51 the end of the ZIP archive was encountered
890
80 the user aborted unzip prematurely with con-
893
81 testing or extraction of one or more files
894
failed due to unsupported compression meth-
895
ods or unsupported decryption.
897
82 no files were found due to bad decryption
898
password(s). (If even one file is success-
899
fully processed, however, the exit status is
902
VMS interprets standard Unix (or PC) return values as
903
other, scarier-looking things, so unzip instead maps them
904
into VMS-style status codes. The current mapping is as
905
follows: 1 (success) for normal exit, 0x7fff0001 for
906
warning errors, and (0x7fff000? + 16*nor-
907
mal_unzip_exit_status) for all other errors, where the `?'
908
is 2 (error) for unzip values 2, 9-11 and 80-82, and 4
909
(fatal error) for the remaining ones (3-8, 50, 51). In
910
addition, there is a compilation option to expand upon
911
this behavior: defining RETURN_CODES results in a human-
799
51 the end of the ZIP archive was encountered prematurely.
801
80 the user aborted unzip prematurely with control-C (or
804
81 testing or extraction of one or more files failed due to
805
unsupported compression methods or unsupported decryp-
808
82 no files were found due to bad decryption password(s).
809
(If even one file is successfully processed, however, the
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-
912
820
readable explanation of what the error status means.
915
Multi-part archives are not yet supported, except in con-
916
junction with zip. (All parts must be concatenated
917
together in order, and then ``zip -F'' must be performed
918
on the concatenated archive in order to ``fix'' it.) This
919
will definitely be corrected in the next major release.
921
Archives read from standard input are not yet supported,
922
except with funzip (and then only the first member of the
923
archive can be extracted).
925
Archives encrypted with 8-bit passwords (e.g., passwords
926
with accented European characters) may not be portable
927
across systems and/or other archivers. See the discussion
930
unzip's -M (``more'') option tries to take into account
931
automatic wrapping of long lines. However, the code may
932
fail to detect the correct wrapping locations. First, TAB
933
characters (and similar control sequences) are not taken
934
into account, they are handled as ordinary printable char-
935
acters. Second, depending on the actual system / OS port,
936
unzip may not detect the true screen geometry but rather
937
rely on "commonly used" default dimensions. The correct
938
handling of tabs would require the implementation of a
939
query for the actual tabulator setup on the output con-
942
Info-ZIP 28 February 2005 (v5.52) 16
946
Dates, times and permissions of stored directories are not
947
restored except under Unix. (On Windows NT and successors,
948
timestamps are now restored.)
950
[MS-DOS] When extracting or testing files from an archive
951
on a defective floppy diskette, if the ``Fail'' option is
952
chosen from DOS's ``Abort, Retry, Fail?'' message, older
953
versions of unzip may hang the system, requiring a reboot.
954
This problem appears to be fixed, but control-C (or con-
955
trol-Break) can still be used to terminate unzip.
957
Under DEC Ultrix, unzip would sometimes fail on long zip-
958
files (bad CRC, not always reproducible). This was appar-
959
ently due either to a hardware bug (cache memory) or an
960
operating system bug (improper handling of page faults?).
961
Since Ultrix has been abandoned in favor of Digital Unix
962
(OSF/1), this may not be an issue anymore.
964
[Unix] Unix special files such as FIFO buffers (named
965
pipes), block devices and character devices are not
966
restored even if they are somehow represented in the zip-
967
file, nor are hard-linked files relinked. Basically the
968
only file types restored by unzip are regular files,
969
directories and symbolic (soft) links.
971
[OS/2] Extended attributes for existing directories are
972
only updated if the -o (``overwrite all'') option is
973
given. This is a limitation of the operating system;
974
because directories only have a creation time associated
975
with them, unzip has no way to determine whether the
976
stored attributes are newer or older than those on disk.
977
In practice this may mean a two-pass approach is required:
978
first unpack the archive normally (with or without fresh-
979
ening/updating existing files), then overwrite just the
980
directory entries (e.g., ``unzip -o foo */'').
982
[VMS] When extracting to another directory, only the
983
[.foo] syntax is accepted for the -d option; the simple
984
Unix foo syntax is silently ignored (as is the less common
987
[VMS] When the file being extracted already exists,
988
unzip's query only allows skipping, overwriting or renam-
989
ing; there should additionally be a choice for creating a
990
new version of the file. In fact, the ``overwrite''
991
choice does create a new version; the old version is not
992
overwritten or deleted.
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.
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
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.
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
850
Dates, times and permissions of stored directories are not restored
851
except under Unix. (On Windows NT and successors, timestamps are now
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.
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.
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.
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 */'').
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).
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-
995
funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zip-
996
info(1L), zipnote(1L), zipsplit(1L)
892
funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zipinfo(1L), zip-
893
note(1L), zipsplit(1L)
999
896
The Info-ZIP home page is currently at
1001
Info-ZIP 28 February 2005 (v5.52) 17
1005
897
http://www.info-zip.org/pub/infozip/
1007
899
ftp://ftp.info-zip.org/pub/infozip/ .
1010
The primary Info-ZIP authors (current semi-active members
1011
of the Zip-Bugs workgroup) are: Ed Gordon (Zip, general
1012
maintenance, shared code, Zip64, Win32, Unix); Christian
1013
Spieler (UnZip maintenance coordination, VMS, MS-DOS,
1014
Win32, shared code, general Zip and UnZip integration and
1015
optimization); Onno van der Linden (Zip); Mike White
1016
(Win32, Windows GUI, Windows DLLs); Kai Uwe Rommel (OS/2,
1017
Win32); Steven M. Schweda (VMS, support of new features);
1018
Paul Kienitz (Amiga, Win32); Chris Herborth (BeOS, QNX,
1019
Atari); Jonathan Hudson (SMS/QDOS); Sergio Monesi (Acorn
1020
RISC OS); Harald Denker (Atari, MVS); John Bush (Solaris,
1021
Amiga); Hunter Goatley (VMS, Info-ZIP Site maintenance);
1022
Steve Salisbury (Win32); Steve Miller (Windows CE GUI),
1023
Johnny Lee (MS-DOS, Win32, Zip64); and Dave Smith (Tandem
1026
The following people were former members of the Info-ZIP
1027
development group and provided major contributions to key
1028
parts of the current code: Greg ``Cave Newt'' Roelofs
1029
(UnZip, unshrink decompression); Jean-loup Gailly (deflate
1030
compression); Mark Adler (inflate decompression, fUnZip).
1032
The author of the original unzip code upon which Info-
1033
ZIP's was based is Samuel H. Smith; Carl Mascott did the
1034
first Unix port; and David P. Kirschbaum organized and
1035
led Info-ZIP in its early days with Keith Petersen hosting
1036
the original mailing list at WSMR-SimTel20. The full list
1037
of contributors to UnZip has grown quite large; please
1038
refer to the CONTRIBS file in the UnZip source distribu-
1039
tion for a relatively complete version.
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).
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,
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
1042
930
v1.2 15 Mar 89 Samuel H. Smith