bookshop 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. data/lib/bookshop/commands/build.rb +12 -8
  2. data/lib/bookshop/generators/bookshop/app/app_generator.rb +16 -20
  3. data/lib/bookshop/generators/bookshop/app/templates/book/assets/css/stylesheet.epub.css +2 -203
  4. data/lib/bookshop/generators/bookshop/app/templates/book/assets/css/stylesheet.mobi.css +14 -169
  5. data/lib/bookshop/generators/bookshop/app/templates/book/bodymatter/ch01/adding_images.html.erb +1 -1
  6. data/lib/bookshop/generators/bookshop/app/templates/book/bodymatter/ch01/ch01.html.erb +1 -1
  7. data/lib/bookshop/generators/bookshop/app/templates/book/book.html.erb +6 -6
  8. data/lib/bookshop/generators/bookshop/app/templates/book/epub/OEBPS/content.opf.erb +17 -13
  9. data/lib/bookshop/generators/bookshop/app/templates/book/frontmatter/preface.html.erb +1 -1
  10. data/lib/bookshop/generators/bookshop/app/templates/book/frontmatter/toc.html.erb +5 -1
  11. data/lib/bookshop/generators/bookshop/app/templates/config/book.yml +2 -2
  12. data/lib/bookshop/generators/bookshop/app/templates/script/zip/Contents +36 -0
  13. data/lib/bookshop/generators/bookshop/app/templates/script/zip/LICENSE +60 -0
  14. data/lib/bookshop/generators/bookshop/app/templates/script/zip/README +234 -0
  15. data/lib/bookshop/generators/bookshop/app/templates/script/zip/README.CR +119 -0
  16. data/lib/bookshop/generators/bookshop/app/templates/script/zip/WHATSNEW +333 -0
  17. data/lib/bookshop/generators/bookshop/app/templates/script/zip/WHERE +266 -0
  18. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zip.exe +0 -0
  19. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zip.txt +2027 -0
  20. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zip30.ann +95 -0
  21. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zipcloak.exe +0 -0
  22. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zipcloak.txt +75 -0
  23. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zipnote.exe +0 -0
  24. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zipnote.txt +63 -0
  25. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zipsplit.exe +0 -0
  26. data/lib/bookshop/generators/bookshop/app/templates/script/zip/zipsplit.txt +53 -0
  27. data/lib/bookshop/version.rb +1 -1
  28. metadata +31 -16
@@ -0,0 +1,266 @@
1
+ __________________________________________________________________________
2
+
3
+ This is the Info-ZIP file ``WHERE,'' last updated on 29 March 2008.
4
+ __________________________________________________________________________
5
+
6
+ The latest version of this file can be found online at:
7
+
8
+ ftp://ftp.info-zip.org/pub/infozip/doc/WHERE
9
+
10
+ Note that some ftp sites may not yet have the latest versions of Zip
11
+ and UnZip when you read this. The latest versions always appear in
12
+ ftp://ftp.info-zip.org/pub/infozip/ (and subdirectories thereof) first,
13
+ except for encryption binaries, which always appear in
14
+ ftp://ftp.icce.rug.nl/infozip/ (and subdirectories) first.
15
+
16
+ IF YOU FIND AN ERROR: please let us know! We don't have time to
17
+ check each and every site personally (or even collectively), so any
18
+ number of the sites listed below may have moved or disappeared en-
19
+ tirely. E-mail to Zip-Bugs@lists.wku.edu and we'll update this file.
20
+ __________________________________________________________________________
21
+
22
+
23
+ Info-ZIP's home WWW site is listed on Yahoo and is at:
24
+
25
+ ftp://ftp.info-zip.org/pub/infozip/Info-ZIP.html (master version)
26
+ http://ftp.info-zip.org/pub/infozip/ (master version)
27
+ http://www.info-zip.org/
28
+
29
+ Note that the old sites at http://www.cdrom.com/pub/infozip/ and
30
+ http://www.freesoftware.com/pub/infozip are PERMANENTLY BROKEN. They
31
+ cannot be updated or removed, apparently.
32
+
33
+ The Zip and UnZip pages have links to most known mirror sites carrying our
34
+ source and/or binary distributions, and they generally are more up-to-date
35
+ and have better information than what you are reading:
36
+
37
+ ftp://ftp.info-zip.org/pub/infozip/Zip.html
38
+ ftp://ftp.info-zip.org/pub/infozip/UnZip.html
39
+
40
+ The related zlib package by Info-ZIP's Jean-loup Gailly and Mark Adler is at:
41
+
42
+ http://www.zlib.net/
43
+
44
+ Source-code archives for Info-ZIP's portable Zip, UnZip, and related
45
+ utilities:
46
+
47
+ zip30.zip Zip 3.0 (deflation, bzip2, ZIP64 large archives, multi-
48
+ volume splits; includes zipnote/zipsplit/zipcloak)
49
+ zip30.tar.Z ditto, compress'd tar format
50
+
51
+ zip232.zip Zip 2.32 (deflation; includes zipnote/zipsplit/zipcloak)
52
+ zip232.tar.Z ditto, compress'd tar format
53
+
54
+ zip11.zip Zip 1.1 (shrinking, implosion; compatible w. PKUNZIP 1.1)
55
+ zip11.tar.Z ditto, compress'd tar format
56
+
57
+ unzip60.zip UnZip 6.0 (all methods[*]; unzip/funzip/unzipsfx/zipgrep)
58
+ unzip60.tar.gz ditto, gzip'd tar format
59
+ unzip60.tar.Z ditto, compress'd tar format
60
+
61
+ unred60.zip UnZip 6.0 add-on, contains copyrighted unreduce support
62
+
63
+ zcrypt29.zip encryption support for Zip 2.3[**]
64
+ zcrypt10.zip encryption support for Zip 1.1
65
+
66
+ MacZip106src.zip contains all the GUI stuff and the project files to build
67
+ the MacZip main-app. To build MacZip successfully, both
68
+ the Zip 3.0 and UnZip 6.0 sources are required, too.
69
+
70
+ wiz601.zip WiZ 6.01, Windows 9x/NT GUI front-end for Info-ZIP's DLLs,
71
+ as well as the source code and project files for the DLLs,
72
+ and static libraries.
73
+
74
+ [*] Unreducing is disabled by default, but is available as add-on.
75
+ As of July 2004, Unisys's LZW patent was expired worldwide, and
76
+ unshrinking is turned on by default since the release of UnZip 5.52.
77
+ See UnZip's INSTALL file for details.
78
+
79
+ [**] As of January 2000, US export regulations were amended to allow export
80
+ of free encryption source code from the US. As of June 2002, these
81
+ regulations were further relaxed to allow export of encryption binaries
82
+ associated with free encryption source code. The Zip 2.32, UnZip 5.52
83
+ and Wiz 5.02 archives now include full crypto source code. As of the
84
+ Zip 2.32 release, all official binaries include encryption support; the
85
+ former "zcr" archives ceased to exist.
86
+ (Note that restrictions may still exist in other countries, of course.)
87
+
88
+ Executables archives (and related files) for Info-ZIP's software; not all
89
+ of these will be immediately available due to lack of access to appropriate
90
+ systems on the part of Info-ZIP members.
91
+
92
+ zip###x.zip MSDOS executables and docs
93
+ zip###x1.zip OS/2 1.x (16-bit) executables and docs
94
+ zip###x2.zip OS/2 2/3/4.x (32-bit) executables and docs
95
+ zip###xA.zip Amiga executables and docs
96
+ zip###xB.zip BeOS executables and docs
97
+ zip###xC.zip VM/CMS executable and docs
98
+ zip###xK.zip Tandem NSK executables and docs
99
+ zip###xM.xmit MVS classic executable
100
+ zip###xM-docs.zip MVS classic port, docs only
101
+ zip###dN.zip WinNT/Win9x (Intel) DLL, header files, docs
102
+ zip###xN.zip WinNT/Win9x (Intel) executables and docs
103
+ zip###xN-axp.zip WinNT (Alpha AXP) executables and docs
104
+ zip###xN-mip.zip WinNT (MIPS R4000) executables and docs
105
+ zip###xN-ppc.zip WinNT (PowerPC) executables and docs
106
+ zip###xO.zip IBM OS/390 Open Edition binaries and docs
107
+ zip###xQ.zip SMS/QDOS executables and docs
108
+ zip###xR.zip Acorn RISC OS executables and docs
109
+ zip###xT.zip Atari TOS executables and docs
110
+ zip###-vms-axp-obj.zip
111
+ VMS (Alpha AXP) object libs, link procedure and docs
112
+ zip###-vms-axp-exe.zip
113
+ VMS (Alpha AXP) executables for VMS 6.1 or later and docs
114
+ zip###-vms-vax-decc-obj.zip
115
+ VMS (VAX) object libs (new DEC C), link procedure and docs
116
+ zip###-vms-vax-decc-exe.zip
117
+ VMS (VAX) executables (DEC C) for VMS 6.1 or later; docs
118
+ zip###-vms-vax-vaxc-obj.zip
119
+ VMS (VAX) object libs (old VAX C), link procedure and docs
120
+ zip###x.hqx Macintosh BinHex'd executables and docs
121
+
122
+ unz###x.exe MSDOS self-extracting executable (16-bit unzip, ..., docs)
123
+ unz###x3.exe MSDOS self-extracting executable (16-, 32-bit unzip, docs)
124
+ unz###x1.exe OS/2 1.x (16-bit) self-extracting executables and docs
125
+ unz###x2.exe OS/2 2/3/4.x (32-bit) self-extracting executables and docs
126
+ unz###d2.zip OS/2 2/3/4.x (32-bit) DLL, header file, demo exe and docs
127
+ unz###xA.ami Amiga self-extracting executables and docs
128
+ unz###xA.lha Amiga executables and docs, LHa archive
129
+ unz###xB.sfx BeOS self-extracting executables and docs
130
+ unz###xB.tar.gz BeOS executables and docs, gzip'd tar archive
131
+ unz###xC.mod VM/CMS executable module in "packed" format
132
+ unz###xC-docs.zip VM/CMS docs, only
133
+ unz###xF.zip FlexOS executable and docs
134
+ unz###xK.zip Tandem NSK executable and docs
135
+ unz###xM.xmit MVS classic executable
136
+ unz###xM-docs.zip MVS classic port, docs only
137
+ unz###dN.zip NT4/W2K/XP/2K3/W9x (32-bit Intel) DLL, header files, docs
138
+ unz###xN.exe NT/2K/XP/2K3/W9x self-extracting i386 executables and docs
139
+ unz###xN-axp.exe WinNT (Alpha AXP) self-extracting executables and docs
140
+ unz###xN-mip.exe WinNT (MIPS R4000) self-extracting executables and docs
141
+ unz###xN-ppc.exe WinNT (PowerPC) self-extracting executables and docs
142
+ unz###xQ.sfx SMS/QDOS self-extracting executables and docs
143
+ unz###xO.tar.Z IBM OS/390 Open edition (Unix-like), exes and docs
144
+ unz###xR.exe Acorn RISC OS self-extracting executables and docs
145
+ unz###xR.spk Acorn RISC OS Spark'd executables and docs
146
+ unz###xT.tos Atari TOS self-extracting executables and docs
147
+ unz###x-vms-axp-obj.bck VMS backup saveset,
148
+ contains UnZip (Alpha) obj libs, link procedure, docs
149
+ unz###x-vms-axp-obj.exe VMS (Alpha AXP) SFX archive (statically linked),
150
+ contains UnZip (Alpha) obj libs, link procedure, docs
151
+ unz###x-vms-axp-exe.exe VMS (Alpha AXP) SFX archive (dynamically linked),
152
+ contains UnZip (Alpha AXP, DEC C) executables and docs,
153
+ smaller than object archive, but requires VMS 6.1
154
+ unz###x-vms-vax-decc-obj.bck VMS backup saveset,
155
+ contains UnZip (new DEC C) obj libs, link procedure, docs
156
+ unz###x-vms-vax-decc-obj.exe VMS (VAX) SFX archive (statically linked),
157
+ contains UnZip (new DEC C) obj libs, link procedure, docs
158
+ unz###x-vms-vax-decc-exe.exe VMS (VAX) SFX archive (dynamically linked),
159
+ contains UnZip (new DEC C) executables and docs,
160
+ smaller than object archive, but requires VMS 6.1
161
+ unz###x-vms-vax-vaxc-obj.bck VMS backup saveset,
162
+ contains UnZip (old VAX C) obj libs, link procedure, docs
163
+ unz###x-vms-vax-vaxc-obj.exe VMS (VAX) SFX archive (statically linked),
164
+ contains UnZip (old VAX C) obj libs, link procedure, docs
165
+ unz###x.hqx Macintosh BinHex'd executables and docs for unzip
166
+ (unz###x.tar.{Z,gz} Unix exes/docs for Solaris 2.x, SCO Unix, Linux, etc.,
167
+ depending on directory/location; generally only provided
168
+ in cases where the OS does *not* ship with a bundled C
169
+ compiler)
170
+
171
+ MacZip106nc.hqx Macintosh combined Zip&UnZip application with GUI,
172
+ executables and docs (no encryption)
173
+ MacZip106c.hqx Macintosh combined Zip&UnZip application with GUI,
174
+ executables and docs (with encryption)
175
+
176
+ wiz###xN.exe WiZ #.## 32-bit (Win9x/NT/2K/XP/2K3) app+docs (self-extr.)
177
+
178
+ UnzpHist.zip complete changes-history of UnZip and its precursors
179
+ ZipHist.zip complete changes-history of Zip
180
+
181
+ ftp/web sites for the US-exportable sources and executables:
182
+
183
+ NOTE: Look for the Info-ZIP file names given above (not PKWARE or third-
184
+ party stuff) in the following locations. Some sites like to use slightly
185
+ different names, such as zip-#.##.tar.gz instead of zip###.tar.Z.
186
+
187
+ http://sourceforge.net/project/showfiles.php?group_id=118012
188
+ [THE INFO-ZIP SOURCES HOME SITE]
189
+
190
+ ftp://ftp.info-zip.org/pub/infozip/ [THE INFO-ZIP HOME SITE]
191
+ ftp://sunsite.doc.ic.ac.uk/packages/zip/ [MIRRORS THE INFO-ZIP HOME SITE]
192
+ ftp://unix.hensa.ac.uk/mirrors/uunet/pub/archiving/zip/
193
+
194
+ ftp://ftp.cmdl.noaa.gov/aerosol/doc/archiver/{all,dos,os2,mac,vax_alpha}/
195
+ ftp://garbo.uwasa.fi/pc/arcers/ [AND OTHER GARBO MIRRORS]
196
+ ftp://garbo.uwasa.fi/unix/arcers/ [AND OTHER GARBO MIRRORS]
197
+ ftp://ftp.elf.stuba.sk/pub/pc/pack/ [AND OTHER STUBA MIRRORS]
198
+ ftp://ftp-os2.cdrom.com/pub/os2/archiver/
199
+ ftp://ftp-os2.nmsu.edu/os2/archiver/
200
+ ftp://ftp.informatik.tu-muenchen.de/pub/comp/os/os2/archiver/
201
+ ftp://sumex-aim.stanford.edu/info-mac/cmp/
202
+ ftp://ftp.wustl.edu/pub/aminet/util/arc/ [AND OTHER AMINET MIRRORS]
203
+ ftp://atari.archive.umich.edu/pub/Archivers/ [AND OTHER UMICH MIRRORS]
204
+ http://www.umich.edu/~archive/atari/Archivers/
205
+ ftp://jake.educom.com.au/pub/infozip/acorn/ [Acorn RISC OS]
206
+ http://www.sitec.net/maczip/ [MacZip port]
207
+
208
+ ftp/web sites for the encryption and decryption sources and/or executables:
209
+
210
+ Outside the US:
211
+ ftp://ftp.info-zip.org/pub/infozip/ [THE INFO-ZIP HOME SITE]
212
+ ftp://ftp.icce.rug.nl/infozip/ [THE INFO-ZIP ENCRYPTION HOME SITE]
213
+ ftp://ftp.elf.stuba.sk/pub/pc/pack/
214
+ ftp://garbo.uwasa.fi/pc/arcers/
215
+ ftp://ftp.inria.fr/system/arch-compr/
216
+ ftp://ftp.leo.org/pub/comp/os/os2/leo/archiver/
217
+ (mail server at ftp-mailer@ftp.leo.org)
218
+
219
+ ftp://ftp.win.tue.nl/pub/compression/zip/
220
+ ftp://ftp.uni-erlangen.de/pub/pc/msdos/arc-utils/zip/
221
+
222
+
223
+ The primary distribution site for the MacZip port can be found at:
224
+
225
+ http://www.sitec.net/maczip/
226
+
227
+ ftp sites for VMS-format Zip and UnZip packages (sources, object files and
228
+ executables, no encryption/decryption--see also "Mail servers" section below):
229
+
230
+ ftp.spc.edu [192.107.46.27] and ftp.wku.edu:
231
+
232
+ [.MACRO32]AAAREADME.TXT
233
+ [.MACRO32.SAVESETS]UNZIP.BCK or UNZIP.ZIP (if already have older version)
234
+ [.MACRO32.SAVESETS]ZIP.ZIP
235
+
236
+ To find other ftp/web sites:
237
+
238
+ The "archie" ftp database utility can be used to find an ftp site near
239
+ you (although the command-line versions always seem to find old ver-
240
+ sions...the `FTPsearch' server at http://ftpsearch.ntnu.no/ftpsearch
241
+ --formerly `Archie 95'--is quite up-to-date, however). Or check a stan-
242
+ dard WWW search engine like AltaVista (http://www.altavista.digital.com/)
243
+ or Yahoo (http://www.yahoo.com/). If you don't know how to use these,
244
+ DON'T ASK US--read the web sites' help pages or check the Usenet groups
245
+ news.announce.newusers or news.answers or some such, or ask your system
246
+ administrator.
247
+
248
+ Mail servers:
249
+
250
+ To get the encryption sources by e-mail, send the following commands
251
+ to ftp-mailer@informatik.tu-muenchen.de:
252
+
253
+ get /pub/comp/os/os2/archiver/zcrypt29.zip
254
+ quit
255
+
256
+ To get the VMS Zip/UnZip package by e-mail, send the following
257
+ commands in the body of a mail message to fileserv@wku.edu (the
258
+ "HELP" command is also accepted):
259
+
260
+ SEND FILESERV_TOOLS
261
+ SEND UNZIP
262
+ SEND ZIP
263
+
264
+ To get Atari executables by e-mail, send a message to
265
+ atari@atari.archive.umich.edu for information about the mail server.
266
+ __________________________________________________________________________
@@ -0,0 +1,2027 @@
1
+ ZIP(1L) ZIP(1L)
2
+
3
+ NAME
4
+ zip - package and compress (archive) files
5
+
6
+ SYNOPSIS
7
+ zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path]
8
+ [-n suffixes] [-t date] [-tt date] [zipfile [file ...]] [-xi list]
9
+
10
+ zipcloak (see separate man page)
11
+
12
+ zipnote (see separate man page)
13
+
14
+ zipsplit (see separate man page)
15
+
16
+ Note: Command line processing in zip has been changed to support long
17
+ options and handle all options and arguments more consistently. Some
18
+ old command lines that depend on command line inconsistencies may no
19
+ longer work.
20
+
21
+ DESCRIPTION
22
+ zip is a compression and file packaging utility for Unix, VMS, MSDOS,
23
+ OS/2, Windows 9x/NT/XP, Minix, Atari, Macintosh, Amiga, and Acorn RISC
24
+ OS. It is analogous to a combination of the Unix commands tar(1) and
25
+ compress(1) and is compatible with PKZIP (Phil Katz's ZIP for MSDOS
26
+ systems).
27
+
28
+ A companion program (unzip(1L)) unpacks zip archives. The zip and
29
+ unzip(1L) programs can work with archives produced by PKZIP (supporting
30
+ most PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can
31
+ work with archives produced by zip (with some exceptions, notably
32
+ streamed archives, but recent changes in the zip file standard may
33
+ facilitate better compatibility). zip version 3.0 is compatible with
34
+ PKZIP 2.04 and also supports the Zip64 extensions of PKZIP 4.5 which
35
+ allow archives as well as files to exceed the previous 2 GB limit (4 GB
36
+ in some cases). zip also now supports bzip2 compression if the bzip2
37
+ library is included when zip is compiled. Note that PKUNZIP 1.10 can-
38
+ not extract files produced by PKZIP 2.04 or zip 3.0. You must use PKUN-
39
+ ZIP 2.04g or unzip 5.0p1 (or later versions) to extract them.
40
+
41
+ See the EXAMPLES section at the bottom of this page for examples of
42
+ some typical uses of zip.
43
+
44
+ Large Archives and Zip64. zip automatically uses the Zip64 extensions
45
+ when files larger than 4 GB are added to an archive, an archive con-
46
+ taining Zip64 entries is updated (if the resulting archive still needs
47
+ Zip64), the size of the archive will exceed 4 GB, or when the number of
48
+ entries in the archive will exceed about 64K. Zip64 is also used for
49
+ archives streamed from standard input as the size of such archives are
50
+ not known in advance, but the option -fz- can be used to force zip to
51
+ create PKZIP 2 compatible archives (as long as Zip64 extensions are not
52
+ needed). You must use a PKZIP 4.5 compatible unzip, such as unzip 6.0
53
+ or later, to extract files using the Zip64 extensions.
54
+
55
+ In addition, streamed archives, entries encrypted with standard encryp-
56
+ tion, or split archives created with the pause option may not be com-
57
+ patible with PKZIP as data descriptors are used and PKZIP at the time
58
+ of this writing does not support data descriptors (but recent changes
59
+ in the PKWare published zip standard now include some support for the
60
+ data descriptor format zip uses).
61
+
62
+ Mac OS X. Though previous Mac versions had their own zip port, zip
63
+ supports Mac OS X as part of the Unix port and most Unix features
64
+ apply. References to "MacOS" below generally refer to MacOS versions
65
+ older than OS X. Support for some Mac OS features in the Unix Mac OS X
66
+ port, such as resource forks, is expected in the next zip release.
67
+
68
+ For a brief help on zip and unzip, run each without specifying any
69
+ parameters on the command line.
70
+
71
+ USE
72
+ The program is useful for packaging a set of files for distribution;
73
+ for archiving files; and for saving disk space by temporarily compress-
74
+ ing unused files or directories.
75
+
76
+ The zip program puts one or more compressed files into a single zip
77
+ archive, along with information about the files (name, path, date, time
78
+ of last modification, protection, and check information to verify file
79
+ integrity). An entire directory structure can be packed into a zip
80
+ archive with a single command. Compression ratios of 2:1 to 3:1 are
81
+ common for text files. zip has one compression method (deflation) and
82
+ can also store files without compression. (If bzip2 support is added,
83
+ zip can also compress using bzip2 compression, but such entries require
84
+ a reasonably modern unzip to decompress. When bzip2 compression is
85
+ selected, it replaces deflation as the default method.) zip automati-
86
+ cally chooses the better of the two (deflation or store or, if bzip2 is
87
+ selected, bzip2 or store) for each file to be compressed.
88
+
89
+ Command format. The basic command format is
90
+
91
+ zip options archive inpath inpath ...
92
+
93
+ where archive is a new or existing zip archive and inpath is a direc-
94
+ tory or file path optionally including wildcards. When given the name
95
+ of an existing zip archive, zip will replace identically named entries
96
+ in the zip archive (matching the relative names as stored in the
97
+ archive) or add entries for new names. For example, if foo.zip exists
98
+ and contains foo/file1 and foo/file2, and the directory foo contains
99
+ the files foo/file1 and foo/file3, then:
100
+
101
+ zip -r foo.zip foo
102
+
103
+ or more concisely
104
+
105
+ zip -r foo foo
106
+
107
+ will replace foo/file1 in foo.zip and add foo/file3 to foo.zip. After
108
+ this, foo.zip contains foo/file1, foo/file2, and foo/file3, with
109
+ foo/file2 unchanged from before.
110
+
111
+ So if before the zip command is executed foo.zip has:
112
+
113
+ foo/file1 foo/file2
114
+
115
+ and directory foo has:
116
+
117
+ file1 file3
118
+
119
+ then foo.zip will have:
120
+
121
+ foo/file1 foo/file2 foo/file3
122
+
123
+ where foo/file1 is replaced and foo/file3 is new.
124
+
125
+ -@ file lists. If a file list is specified as -@ [Not on MacOS], zip
126
+ takes the list of input files from standard input instead of from the
127
+ command line. For example,
128
+
129
+ zip -@ foo
130
+
131
+ will store the files listed one per line on stdin in foo.zip.
132
+
133
+ Under Unix, this option can be used to powerful effect in conjunction
134
+ with the find (1) command. For example, to archive all the C source
135
+ files in the current directory and its subdirectories:
136
+
137
+ find . -name "*.[ch]" -print | zip source -@
138
+
139
+ (note that the pattern must be quoted to keep the shell from expanding
140
+ it).
141
+
142
+ Streaming input and output. zip will also accept a single dash ("-")
143
+ as the zip file name, in which case it will write the zip file to stan-
144
+ dard output, allowing the output to be piped to another program. For
145
+ example:
146
+
147
+ zip -r - . | dd of=/dev/nrst0 obs=16k
148
+
149
+ would write the zip output directly to a tape with the specified block
150
+ size for the purpose of backing up the current directory.
151
+
152
+ zip also accepts a single dash ("-") as the name of a file to be com-
153
+ pressed, in which case it will read the file from standard input,
154
+ allowing zip to take input from another program. For example:
155
+
156
+ tar cf - . | zip backup -
157
+
158
+ would compress the output of the tar command for the purpose of backing
159
+ up the current directory. This generally produces better compression
160
+ than the previous example using the -r option because zip can take
161
+ advantage of redundancy between files. The backup can be restored using
162
+ the command
163
+
164
+ unzip -p backup | tar xf -
165
+
166
+ When no zip file name is given and stdout is not a terminal, zip acts
167
+ as a filter, compressing standard input to standard output. For exam-
168
+ ple,
169
+
170
+ tar cf - . | zip | dd of=/dev/nrst0 obs=16k
171
+
172
+ is equivalent to
173
+
174
+ tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
175
+
176
+ zip archives created in this manner can be extracted with the program
177
+ funzip which is provided in the unzip package, or by gunzip which is
178
+ provided in the gzip package (but some gunzip may not support this if
179
+ zip used the Zip64 extensions). For example:
180
+
181
+ dd if=/dev/nrst0 ibs=16k | funzip | tar xvf -
182
+
183
+ The stream can also be saved to a file and unzip used.
184
+
185
+ If Zip64 support for large files and archives is enabled and zip is
186
+ used as a filter, zip creates a Zip64 archive that requires a PKZIP 4.5
187
+ or later compatible unzip to read it. This is to avoid amgibuities in
188
+ the zip file structure as defined in the current zip standard (PKWARE
189
+ AppNote) where the decision to use Zip64 needs to be made before data
190
+ is written for the entry, but for a stream the size of the data is not
191
+ known at that point. If the data is known to be smaller than 4 GB, the
192
+ option -fz- can be used to prevent use of Zip64, but zip will exit with
193
+ an error if Zip64 was in fact needed. zip 3 and unzip 6 and later can
194
+ read archives with Zip64 entries. Also, zip removes the Zip64 exten-
195
+ sions if not needed when archive entries are copied (see the -U
196
+ (--copy) option).
197
+
198
+ When directing the output to another file, note that all options should
199
+ be before the redirection including -x. For example:
200
+
201
+ zip archive "*.h" "*.c" -x donotinclude.h orthis.h > tofile
202
+
203
+ Zip files. When changing an existing zip archive, zip will write a
204
+ temporary file with the new contents, and only replace the old one when
205
+ the process of creating the new version has been completed without
206
+ error.
207
+
208
+ If the name of the zip archive does not contain an extension, the
209
+ extension .zip is added. If the name already contains an extension
210
+ other than .zip, the existing extension is kept unchanged. However,
211
+ split archives (archives split over multiple files) require the .zip
212
+ extension on the last split.
213
+
214
+ Scanning and reading files. When zip starts, it scans for files to
215
+ process (if needed). If this scan takes longer than about 5 seconds,
216
+ zip will display a "Scanning files" message and start displaying
217
+ progress dots every 2 seconds or every so many entries processed,
218
+ whichever takes longer. If there is more than 2 seconds between dots
219
+ it could indicate that finding each file is taking time and could mean
220
+ a slow network connection for example. (Actually the initial file scan
221
+ is a two-step process where the directory scan is followed by a sort
222
+ and these two steps are separated with a space in the dots. If updat-
223
+ ing an existing archive, a space also appears between the existing file
224
+ scan and the new file scan.) The scanning files dots are not con-
225
+ trolled by the -ds dot size option, but the dots are turned off by the
226
+ -q quiet option. The -sf show files option can be used to scan for
227
+ files and get the list of files scanned without actually processing
228
+ them.
229
+
230
+ If zip is not able to read a file, it issues a warning but continues.
231
+ See the -MM option below for more on how zip handles patterns that are
232
+ not matched and files that are not readable. If some files were
233
+ skipped, a warning is issued at the end of the zip operation noting how
234
+ many files were read and how many skipped.
235
+
236
+ Command modes. zip now supports two distinct types of command modes,
237
+ external and internal. The external modes (add, update, and freshen)
238
+ read files from the file system (as well as from an existing archive)
239
+ while the internal modes (delete and copy) operate exclusively on
240
+ entries in an existing archive.
241
+
242
+ add
243
+ Update existing entries and add new files. If the archive does
244
+ not exist create it. This is the default mode.
245
+
246
+ update (-u)
247
+ Update existing entries if newer on the file system and add new
248
+ files. If the archive does not exist issue warning then create
249
+ a new archive.
250
+
251
+ freshen (-f)
252
+ Update existing entries of an archive if newer on the file sys-
253
+ tem. Does not add new files to the archive.
254
+
255
+ delete (-d)
256
+ Select entries in an existing archive and delete them.
257
+
258
+ copy (-U)
259
+ Select entries in an existing archive and copy them to a new
260
+ archive. This new mode is similar to update but command line
261
+ patterns select entries in the existing archive rather than
262
+ files from the file system and it uses the --out option to write
263
+ the resulting archive to a new file rather than update the
264
+ existing archive, leaving the original archive unchanged.
265
+
266
+ The new File Sync option (-FS) is also considered a new mode, though it
267
+ is similar to update. This mode synchronizes the archive with the
268
+ files on the OS, only replacing files in the archive if the file time
269
+ or size of the OS file is different, adding new files, and deleting
270
+ entries from the archive where there is no matching file. As this mode
271
+ can delete entries from the archive, consider making a backup copy of
272
+ the archive.
273
+
274
+ Also see -DF for creating difference archives.
275
+
276
+ See each option description below for details and the EXAMPLES section
277
+ below for examples.
278
+
279
+ Split archives. zip version 3.0 and later can create split archives.
280
+ A split archive is a standard zip archive split over multiple files.
281
+ (Note that split archives are not just archives split in to pieces, as
282
+ the offsets of entries are now based on the start of each split. Con-
283
+ catenating the pieces together will invalidate these offsets, but unzip
284
+ can usually deal with it. zip will usually refuse to process such a
285
+ spliced archive unless the -FF fix option is used to fix the offsets.)
286
+
287
+ One use of split archives is storing a large archive on multiple remov-
288
+ able media. For a split archive with 20 split files the files are typ-
289
+ ically named (replace ARCHIVE with the name of your archive)
290
+ ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip. Note that the
291
+ last file is the .zip file. In contrast, spanned archives are the
292
+ original multi-disk archive generally requiring floppy disks and using
293
+ volume labels to store disk numbers. zip supports split archives but
294
+ not spanned archives, though a procedure exists for converting split
295
+ archives of the right size to spanned archives. The reverse is also
296
+ true, where each file of a spanned archive can be copied in order to
297
+ files with the above names to create a split archive.
298
+
299
+ Use -s to set the split size and create a split archive. The size is
300
+ given as a number followed optionally by one of k (kB), m (MB), g (GB),
301
+ or t (TB) (the default is m). The -sp option can be used to pause zip
302
+ between splits to allow changing removable media, for example, but read
303
+ the descriptions and warnings for both -s and -sp below.
304
+
305
+ Though zip does not update split archives, zip provides the new option
306
+ -O (--output-file or --out) to allow split archives to be updated and
307
+ saved in a new archive. For example,
308
+
309
+ zip inarchive.zip foo.c bar.c --out outarchive.zip
310
+
311
+ reads archive inarchive.zip, even if split, adds the files foo.c and
312
+ bar.c, and writes the resulting archive to outarchive.zip. If inar-
313
+ chive.zip is split then outarchive.zip defaults to the same split size.
314
+ Be aware that if outarchive.zip and any split files that are created
315
+ with it already exist, these are always overwritten as needed without
316
+ warning. This may be changed in the future.
317
+
318
+ Unicode. Though the zip standard requires storing paths in an archive
319
+ using a specific character set, in practice zips have stored paths in
320
+ archives in whatever the local character set is. This creates problems
321
+ when an archive is created or updated on a system using one character
322
+ set and then extracted on another system using a different character
323
+ set. When compiled with Unicode support enabled on platforms that sup-
324
+ port wide characters, zip now stores, in addition to the standard local
325
+ path for backward compatibility, the UTF-8 translation of the path.
326
+ This provides a common universal character set for storing paths that
327
+ allows these paths to be fully extracted on other systems that support
328
+ Unicode and to match as close as possible on systems that don't.
329
+
330
+ On Win32 systems where paths are internally stored as Unicode but rep-
331
+ resented in the local character set, it's possible that some paths will
332
+ be skipped during a local character set directory scan. zip with Uni-
333
+ code support now can read and store these paths. Note that Win 9x sys-
334
+ tems and FAT file systems don't fully support Unicode.
335
+
336
+ Be aware that console windows on Win32 and Unix, for example, sometimes
337
+ don't accurately show all characters due to how each operating system
338
+ switches in character sets for display. However, directory navigation
339
+ tools should show the correct paths if the needed fonts are loaded.
340
+
341
+ Command line format. This version of zip has updated command line pro-
342
+ cessing and support for long options.
343
+
344
+ Short options take the form
345
+
346
+ -s[-][s[-]...][value][=value][ value]
347
+
348
+ where s is a one or two character short option. A short option that
349
+ takes a value is last in an argument and anything after it is taken as
350
+ the value. If the option can be negated and "-" immediately follows
351
+ the option, the option is negated. Short options can also be given as
352
+ separate arguments
353
+
354
+ -s[-][value][=value][ value] -s[-][value][=value][ value] ...
355
+
356
+ Short options in general take values either as part of the same argu-
357
+ ment or as the following argument. An optional = is also supported.
358
+ So
359
+
360
+ -ttmmddyyyy
361
+
362
+ and
363
+
364
+ -tt=mmddyyyy
365
+
366
+ and
367
+
368
+ -tt mmddyyyy
369
+
370
+ all work. The -x and -i options accept lists of values and use a
371
+ slightly different format described below. See the -x and -i options.
372
+
373
+ Long options take the form
374
+
375
+ --longoption[-][=value][ value]
376
+
377
+ where the option starts with --, has a multicharacter name, can include
378
+ a trailing dash to negate the option (if the option supports it), and
379
+ can have a value (option argument) specified by preceeding it with =
380
+ (no spaces). Values can also follow the argument. So
381
+
382
+ --before-date=mmddyyyy
383
+
384
+ and
385
+
386
+ --before-date mmddyyyy
387
+
388
+ both work.
389
+
390
+ Long option names can be shortened to the shortest unique abbreviation.
391
+ See the option descriptions below for which support long options. To
392
+ avoid confusion, avoid abbreviating a negatable option with an embedded
393
+ dash ("-") at the dash if you plan to negate it (the parser would con-
394
+ sider a trailing dash, such as for the option --some-option using
395
+ --some- as the option, as part of the name rather than a negating
396
+ dash). This may be changed to force the last dash in --some- to be
397
+ negating in the future.
398
+
399
+ OPTIONS
400
+ -a
401
+ --ascii
402
+ [Systems using EBCDIC] Translate file to ASCII format.
403
+
404
+ -A
405
+ --adjust-sfx
406
+ Adjust self-extracting executable archive. A self-extracting
407
+ executable archive is created by prepending the SFX stub to an
408
+ existing archive. The -A option tells zip to adjust the entry
409
+ offsets stored in the archive to take into account this "pream-
410
+ ble" data.
411
+
412
+ Note: self-extracting archives for the Amiga are a special case. At
413
+ present, only the Amiga port of zip is capable of adjusting or updating
414
+ these without corrupting them. -J can be used to remove the SFX stub if
415
+ other updates need to be made.
416
+
417
+ -AC
418
+ --archive-clear
419
+ [WIN32] Once archive is created (and tested if -T is used,
420
+ which is recommended), clear the archive bits of files pro-
421
+ cessed. WARNING: Once the bits are cleared they are cleared.
422
+ You may want to use the -sf show files option to store the list
423
+ of files processed in case the archive operation must be
424
+ repeated. Also consider using the -MM must match option. Be
425
+ sure to check out -DF as a possibly better way to do incremental
426
+ backups.
427
+
428
+ -AS
429
+ --archive-set
430
+ [WIN32] Only include files that have the archive bit set.
431
+ Directories are not stored when -AS is used, though by default
432
+ the paths of entries, including directories, are stored as usual
433
+ and can be used by most unzips to recreate directories.
434
+
435
+ The archive bit is set by the operating system when a file is
436
+ modified and, if used with -AC, -AS can provide an incremental
437
+ backup capability. However, other applications can modify the
438
+ archive bit and it may not be a reliable indicator of which
439
+ files have changed since the last archive operation. Alterna-
440
+ tive ways to create incremental backups are using -t to use file
441
+ dates, though this won't catch old files copied to directories
442
+ being archived, and -DF to create a differential archive.
443
+
444
+ -B
445
+ --binary
446
+ [VM/CMS and MVS] force file to be read binary (default is text).
447
+
448
+ -Bn [TANDEM] set Edit/Enscribe formatting options with n defined as
449
+ bit 0: Don't add delimiter (Edit/Enscribe)
450
+ bit 1: Use LF rather than CR/LF as delimiter (Edit/Enscribe)
451
+ bit 2: Space fill record to maximum record length (Enscribe)
452
+ bit 3: Trim trailing space (Enscribe)
453
+ bit 8: Force 30K (Expand) large read for unstructured files
454
+
455
+ -b path
456
+ --temp-path path
457
+ Use the specified path for the temporary zip archive. For exam-
458
+ ple:
459
+
460
+ zip -b /tmp stuff *
461
+
462
+ will put the temporary zip archive in the directory /tmp, copy-
463
+ ing over stuff.zip to the current directory when done. This
464
+ option is useful when updating an existing archive and the file
465
+ system containing this old archive does not have enough space to
466
+ hold both old and new archives at the same time. It may also be
467
+ useful when streaming in some cases to avoid the need for data
468
+ descriptors. Note that using this option may require zip take
469
+ additional time to copy the archive file when done to the desti-
470
+ nation file system.
471
+
472
+ -c
473
+ --entry-comments
474
+ Add one-line comments for each file. File operations (adding,
475
+ updating) are done first, and the user is then prompted for a
476
+ one-line comment for each file. Enter the comment followed by
477
+ return, or just return for no comment.
478
+
479
+ -C
480
+ --preserve-case
481
+ [VMS] Preserve case all on VMS. Negating this option (-C-)
482
+ downcases.
483
+
484
+ -C2
485
+ --preserve-case-2
486
+ [VMS] Preserve case ODS2 on VMS. Negating this option (-C2-)
487
+ downcases.
488
+
489
+ -C5
490
+ --preserve-case-5
491
+ [VMS] Preserve case ODS5 on VMS. Negating this option (-C5-)
492
+ downcases.
493
+
494
+ -d
495
+ --delete
496
+ Remove (delete) entries from a zip archive. For example:
497
+
498
+ zip -d foo foo/tom/junk foo/harry/\* \*.o
499
+
500
+ will remove the entry foo/tom/junk, all of the files that start
501
+ with foo/harry/, and all of the files that end with .o (in any
502
+ path). Note that shell pathname expansion has been inhibited
503
+ with backslashes, so that zip can see the asterisks, enabling
504
+ zip to match on the contents of the zip archive instead of the
505
+ contents of the current directory. (The backslashes are not
506
+ used on MSDOS-based platforms.) Can also use quotes to escape
507
+ the asterisks as in
508
+
509
+ zip -d foo foo/tom/junk "foo/harry/*" "*.o"
510
+
511
+ Not escaping the asterisks on a system where the shell expands
512
+ wildcards could result in the asterisks being converted to a
513
+ list of files in the current directory and that list used to
514
+ delete entries from the archive.
515
+
516
+ Under MSDOS, -d is case sensitive when it matches names in the
517
+ zip archive. This requires that file names be entered in upper
518
+ case if they were zipped by PKZIP on an MSDOS system. (We con-
519
+ sidered making this case insensitive on systems where paths were
520
+ case insensitive, but it is possible the archive came from a
521
+ system where case does matter and the archive could include both
522
+ Bar and bar as separate files in the archive.) But see the new
523
+ option -ic to ignore case in the archive.
524
+
525
+ -db
526
+ --display-bytes
527
+ Display running byte counts showing the bytes zipped and the
528
+ bytes to go.
529
+
530
+ -dc
531
+ --display-counts
532
+ Display running count of entries zipped and entries to go.
533
+
534
+ -dd
535
+ --display-dots
536
+ Display dots while each entry is zipped (except on ports that
537
+ have their own progress indicator). See -ds below for setting
538
+ dot size. The default is a dot every 10 MB of input file pro-
539
+ cessed. The -v option also displays dots (previously at a much
540
+ higher rate than this but now -v also defaults to 10 MB) and
541
+ this rate is also controlled by -ds.
542
+
543
+ -df
544
+ --datafork
545
+ [MacOS] Include only data-fork of files zipped into the archive.
546
+ Good for exporting files to foreign operating-systems.
547
+ Resource-forks will be ignored at all.
548
+
549
+ -dg
550
+ --display-globaldots
551
+ Display progress dots for the archive instead of for each file.
552
+ The command
553
+
554
+ zip -qdgds 10m
555
+
556
+ will turn off most output except dots every 10 MB.
557
+
558
+ -ds size
559
+ --dot-size size
560
+ Set amount of input file processed for each dot displayed. See
561
+ -dd to enable displaying dots. Setting this option implies -dd.
562
+ Size is in the format nm where n is a number and m is a multi-
563
+ plier. Currently m can be k (KB), m (MB), g (GB), or t (TB), so
564
+ if n is 100 and m is k, size would be 100k which is 100 KB. The
565
+ default is 10 MB.
566
+
567
+ The -v option also displays dots and now defaults to 10 MB also.
568
+ This rate is also controlled by this option. A size of 0 turns
569
+ dots off.
570
+
571
+ This option does not control the dots from the "Scanning files"
572
+ message as zip scans for input files. The dot size for that is
573
+ fixed at 2 seconds or a fixed number of entries, whichever is
574
+ longer.
575
+
576
+ -du
577
+ --display-usize
578
+ Display the uncompressed size of each entry.
579
+
580
+ -dv
581
+ --display-volume
582
+ Display the volume (disk) number each entry is being read from,
583
+ if reading an existing archive, and being written to.
584
+
585
+ -D
586
+ --no-dir-entries
587
+ Do not create entries in the zip archive for directories.
588
+ Directory entries are created by default so that their
589
+ attributes can be saved in the zip archive. The environment
590
+ variable ZIPOPT can be used to change the default options. For
591
+ example under Unix with sh:
592
+
593
+ ZIPOPT="-D"; export ZIPOPT
594
+
595
+ (The variable ZIPOPT can be used for any option, including -i
596
+ and -x using a new option format detailed below, and can include
597
+ several options.) The option -D is a shorthand for -x "*/" but
598
+ the latter previously could not be set as default in the ZIPOPT
599
+ environment variable as the contents of ZIPOPT gets inserted
600
+ near the beginning of the command line and the file list had to
601
+ end at the end of the line.
602
+
603
+ This version of zip does allow -x and -i options in ZIPOPT if
604
+ the form
605
+
606
+ -x file file ... @
607
+
608
+ is used, where the @ (an argument that is just @) terminates the
609
+ list.
610
+
611
+ -DF
612
+ --difference-archive
613
+ Create an archive that contains all new and changed files since
614
+ the original archive was created. For this to work, the input
615
+ file list and current directory must be the same as during the
616
+ original zip operation.
617
+
618
+ For example, if the existing archive was created using
619
+
620
+ zip -r foofull .
621
+
622
+ from the bar directory, then the command
623
+
624
+ zip -r foofull . -DF --out foonew
625
+
626
+ also from the bar directory creates the archive foonew with just
627
+ the files not in foofull and the files where the size or file
628
+ time of the files do not match those in foofull.
629
+
630
+ Note that the timezone environment variable TZ should be set
631
+ according to the local timezone in order for this option to work
632
+ correctly. A change in timezone since the original archive was
633
+ created could result in no times matching and all files being
634
+ included.
635
+
636
+ A possible approach to backing up a directory might be to create
637
+ a normal archive of the contents of the directory as a full
638
+ backup, then use this option to create incremental backups.
639
+
640
+ -e
641
+ --encrypt
642
+ Encrypt the contents of the zip archive using a password which
643
+ is entered on the terminal in response to a prompt (this will
644
+ not be echoed; if standard error is not a tty, zip will exit
645
+ with an error). The password prompt is repeated to save the
646
+ user from typing errors.
647
+
648
+ -E
649
+ --longnames
650
+ [OS/2] Use the .LONGNAME Extended Attribute (if found) as file-
651
+ name.
652
+
653
+ -f
654
+ --freshen
655
+ Replace (freshen) an existing entry in the zip archive only if
656
+ it has been modified more recently than the version already in
657
+ the zip archive; unlike the update option (-u) this will not add
658
+ files that are not already in the zip archive. For example:
659
+
660
+ zip -f foo
661
+
662
+ This command should be run from the same directory from which
663
+ the original zip command was run, since paths stored in zip
664
+ archives are always relative.
665
+
666
+ Note that the timezone environment variable TZ should be set
667
+ according to the local timezone in order for the -f, -u and -o
668
+ options to work correctly.
669
+
670
+ The reasons behind this are somewhat subtle but have to do with
671
+ the differences between the Unix-format file times (always in
672
+ GMT) and most of the other operating systems (always local time)
673
+ and the necessity to compare the two. A typical TZ value is
674
+ ``MET-1MEST'' (Middle European time with automatic adjustment
675
+ for ``summertime'' or Daylight Savings Time).
676
+
677
+ The format is TTThhDDD, where TTT is the time zone such as MET,
678
+ hh is the difference between GMT and local time such as -1
679
+ above, and DDD is the time zone when daylight savings time is in
680
+ effect. Leave off the DDD if there is no daylight savings time.
681
+ For the US Eastern time zone EST5EDT.
682
+
683
+ -F
684
+ --fix
685
+ -FF
686
+ --fixfix
687
+ Fix the zip archive. The -F option can be used if some portions
688
+ of the archive are missing, but requires a reasonably intact
689
+ central directory. The input archive is scanned as usual, but
690
+ zip will ignore some problems. The resulting archive should be
691
+ valid, but any inconsistent entries will be left out.
692
+
693
+ When doubled as in -FF, the archive is scanned from the begin-
694
+ ning and zip scans for special signatures to identify the limits
695
+ between the archive members. The single -F is more reliable if
696
+ the archive is not too much damaged, so try this option first.
697
+
698
+ If the archive is too damaged or the end has been truncated, you
699
+ must use -FF. This is a change from zip 2.32, where the -F
700
+ option is able to read a truncated archive. The -F option now
701
+ more reliably fixes archives with minor damage and the -FF
702
+ option is needed to fix archives where -F might have been suffi-
703
+ cient before.
704
+
705
+ Neither option will recover archives that have been incorrectly
706
+ transferred in ascii mode instead of binary. After the repair,
707
+ the -t option of unzip may show that some files have a bad CRC.
708
+ Such files cannot be recovered; you can remove them from the
709
+ archive using the -d option of zip.
710
+
711
+ Note that -FF may have trouble fixing archives that include an
712
+ embedded zip archive that was stored (without compression) in
713
+ the archive and, depending on the damage, it may find the
714
+ entries in the embedded archive rather than the archive itself.
715
+ Try -F first as it does not have this problem.
716
+
717
+ The format of the fix commands have changed. For example, to
718
+ fix the damaged archive foo.zip,
719
+
720
+ zip -F foo --out foofix
721
+
722
+ tries to read the entries normally, copying good entries to the
723
+ new archive foofix.zip. If this doesn't work, as when the
724
+ archive is truncated, or if some entries you know are in the
725
+ archive are missed, then try
726
+
727
+ zip -FF foo --out foofixfix
728
+
729
+ and compare the resulting archive to the archive created by -F.
730
+ The -FF option may create an inconsistent archive. Depending on
731
+ what is damaged, you can then use the -F option to fix that
732
+ archive.
733
+
734
+ A split archive with missing split files can be fixed using -F
735
+ if you have the last split of the archive (the .zip file). If
736
+ this file is missing, you must use -FF to fix the archive, which
737
+ will prompt you for the splits you have.
738
+
739
+ Currently the fix options can't recover entries that have a bad
740
+ checksum or are otherwise damaged.
741
+
742
+ -FI
743
+ --fifo [Unix] Normally zip skips reading any FIFOs (named pipes)
744
+ encountered, as zip can hang if the FIFO is not being fed. This
745
+ option tells zip to read the contents of any FIFO it finds.
746
+
747
+ -FS
748
+ --filesync
749
+ Synchronize the contents of an archive with the files on the OS.
750
+ Normally when an archive is updated, new files are added and
751
+ changed files are updated but files that no longer exist on the
752
+ OS are not deleted from the archive. This option enables a new
753
+ mode that checks entries in the archive against the file system.
754
+ If the file time and file size of the entry matches that of the
755
+ OS file, the entry is copied from the old archive instead of
756
+ being read from the file system and compressed. If the OS file
757
+ has changed, the entry is read and compressed as usual. If the
758
+ entry in the archive does not match a file on the OS, the entry
759
+ is deleted. Enabling this option should create archives that
760
+ are the same as new archives, but since existing entries are
761
+ copied instead of compressed, updating an existing archive with
762
+ -FS can be much faster than creating a new archive. Also con-
763
+ sider using -u for updating an archive.
764
+
765
+ For this option to work, the archive should be updated from the
766
+ same directory it was created in so the relative paths match.
767
+ If few files are being copied from the old archive, it may be
768
+ faster to create a new archive instead.
769
+
770
+ Note that the timezone environment variable TZ should be set
771
+ according to the local timezone in order for this option to work
772
+ correctly. A change in timezone since the original archive was
773
+ created could result in no times matching and recompression of
774
+ all files.
775
+
776
+ This option deletes files from the archive. If you need to pre-
777
+ serve the original archive, make a copy of the archive first or
778
+ use the --out option to output the updated archive to a new
779
+ file. Even though it may be slower, creating a new archive with
780
+ a new archive name is safer, avoids mismatches between archive
781
+ and OS paths, and is preferred.
782
+
783
+ -g
784
+ --grow
785
+ Grow (append to) the specified zip archive, instead of creating
786
+ a new one. If this operation fails, zip attempts to restore the
787
+ archive to its original state. If the restoration fails, the
788
+ archive might become corrupted. This option is ignored when
789
+ there's no existing archive or when at least one archive member
790
+ must be updated or deleted.
791
+
792
+ -h
793
+ -?
794
+ --help
795
+ Display the zip help information (this also appears if zip is
796
+ run with no arguments).
797
+
798
+ -h2
799
+ --more-help
800
+ Display extended help including more on command line format,
801
+ pattern matching, and more obscure options.
802
+
803
+ -i files
804
+ --include files
805
+ Include only the specified files, as in:
806
+
807
+ zip -r foo . -i \*.c
808
+
809
+ which will include only the files that end in .c in the current
810
+ directory and its subdirectories. (Note for PKZIP users: the
811
+ equivalent command is
812
+
813
+ pkzip -rP foo *.c
814
+
815
+ PKZIP does not allow recursion in directories other than the
816
+ current one.) The backslash avoids the shell filename substitu-
817
+ tion, so that the name matching is performed by zip at all
818
+ directory levels. [This is for Unix and other systems where \
819
+ escapes the next character. For other systems where the shell
820
+ does not process * do not use \ and the above is
821
+
822
+ zip -r foo . -i *.c
823
+
824
+ Examples are for Unix unless otherwise specified.] So to
825
+ include dir, a directory directly under the current directory,
826
+ use
827
+
828
+ zip -r foo . -i dir/\*
829
+
830
+ or
831
+
832
+ zip -r foo . -i "dir/*"
833
+
834
+ to match paths such as dir/a and dir/b/file.c [on ports without
835
+ wildcard expansion in the shell such as MSDOS and Windows
836
+
837
+ zip -r foo . -i dir/*
838
+
839
+ is used.] Note that currently the trailing / is needed for
840
+ directories (as in
841
+
842
+ zip -r foo . -i dir/
843
+
844
+ to include directory dir).
845
+
846
+ The long option form of the first example is
847
+
848
+ zip -r foo . --include \*.c
849
+
850
+ and does the same thing as the short option form.
851
+
852
+ Though the command syntax used to require -i at the end of the
853
+ command line, this version actually allows -i (or --include)
854
+ anywhere. The list of files terminates at the next argument
855
+ starting with -, the end of the command line, or the list termi-
856
+ nator @ (an argument that is just @). So the above can be given
857
+ as
858
+
859
+ zip -i \*.c @ -r foo .
860
+
861
+ for example. There must be a space between the option and the
862
+ first file of a list. For just one file you can use the single
863
+ value form
864
+
865
+ zip -i\*.c -r foo .
866
+
867
+ (no space between option and value) or
868
+
869
+ zip --include=\*.c -r foo .
870
+
871
+ as additional examples. The single value forms are not recom-
872
+ mended because they can be confusing and, in particular, the
873
+ -ifile format can cause problems if the first letter of file
874
+ combines with i to form a two-letter option starting with i.
875
+ Use -sc to see how your command line will be parsed.
876
+
877
+ Also possible:
878
+
879
+ zip -r foo . -i@include.lst
880
+
881
+ which will only include the files in the current directory and
882
+ its subdirectories that match the patterns in the file
883
+ include.lst.
884
+
885
+ Files to -i and -x are patterns matching internal archive paths.
886
+ See -R for more on patterns.
887
+
888
+ -I
889
+ --no-image
890
+ [Acorn RISC OS] Don't scan through Image files. When used, zip
891
+ will not consider Image files (eg. DOS partitions or Spark
892
+ archives when SparkFS is loaded) as directories but will store
893
+ them as single files.
894
+
895
+ For example, if you have SparkFS loaded, zipping a Spark archive
896
+ will result in a zipfile containing a directory (and its con-
897
+ tent) while using the 'I' option will result in a zipfile con-
898
+ taining a Spark archive. Obviously this second case will also be
899
+ obtained (without the 'I' option) if SparkFS isn't loaded.
900
+
901
+ -ic
902
+ --ignore-case
903
+ [VMS, WIN32] Ignore case when matching archive entries. This
904
+ option is only available on systems where the case of files is
905
+ ignored. On systems with case-insensitive file systems, case is
906
+ normally ignored when matching files on the file system but is
907
+ not ignored for -f (freshen), -d (delete), -U (copy), and simi-
908
+ lar modes when matching against archive entries (currently -f
909
+ ignores case on VMS) because archive entries can be from systems
910
+ where case does matter and names that are the same except for
911
+ case can exist in an archive. The -ic option makes all matching
912
+ case insensitive. This can result in multiple archive entries
913
+ matching a command line pattern.
914
+
915
+ -j
916
+ --junk-paths
917
+ Store just the name of a saved file (junk the path), and do not
918
+ store directory names. By default, zip will store the full path
919
+ (relative to the current directory).
920
+
921
+ -jj
922
+ --absolute-path
923
+ [MacOS] record Fullpath (+ Volname). The complete path including
924
+ volume will be stored. By default the relative path will be
925
+ stored.
926
+
927
+ -J
928
+ --junk-sfx
929
+ Strip any prepended data (e.g. a SFX stub) from the archive.
930
+
931
+ -k
932
+ --DOS-names
933
+ Attempt to convert the names and paths to conform to MSDOS,
934
+ store only the MSDOS attribute (just the user write attribute
935
+ from Unix), and mark the entry as made under MSDOS (even though
936
+ it was not); for compatibility with PKUNZIP under MSDOS which
937
+ cannot handle certain names such as those with two dots.
938
+
939
+ -l
940
+ --to-crlf
941
+ Translate the Unix end-of-line character LF into the MSDOS con-
942
+ vention CR LF. This option should not be used on binary files.
943
+ This option can be used on Unix if the zip file is intended for
944
+ PKUNZIP under MSDOS. If the input files already contain CR LF,
945
+ this option adds an extra CR. This is to ensure that unzip -a on
946
+ Unix will get back an exact copy of the original file, to undo
947
+ the effect of zip -l. See -ll for how binary files are handled.
948
+
949
+ -la
950
+ --log-append
951
+ Append to existing logfile. Default is to overwrite.
952
+
953
+ -lf logfilepath
954
+ --logfile-path logfilepath
955
+ Open a logfile at the given path. By default any existing file
956
+ at that location is overwritten, but the -la option will result
957
+ in an existing file being opened and the new log information
958
+ appended to any existing information. Only warnings and errors
959
+ are written to the log unless the -li option is also given, then
960
+ all information messages are also written to the log.
961
+
962
+ -li
963
+ --log-info
964
+ Include information messages, such as file names being zipped,
965
+ in the log. The default is to only include the command line,
966
+ any warnings and errors, and the final status.
967
+
968
+ -ll
969
+ --from-crlf
970
+ Translate the MSDOS end-of-line CR LF into Unix LF. This option
971
+ should not be used on binary files. This option can be used on
972
+ MSDOS if the zip file is intended for unzip under Unix. If the
973
+ file is converted and the file is later determined to be binary
974
+ a warning is issued and the file is probably corrupted. In this
975
+ release if -ll detects binary in the first buffer read from a
976
+ file, zip now issues a warning and skips line end conversion on
977
+ the file. This check seems to catch all binary files tested,
978
+ but the original check remains and if a converted file is later
979
+ determined to be binary that warning is still issued. A new
980
+ algorithm is now being used for binary detection that should
981
+ allow line end conversion of text files in UTF-8 and similar
982
+ encodings.
983
+
984
+ -L
985
+ --license
986
+ Display the zip license.
987
+
988
+ -m
989
+ --move
990
+ Move the specified files into the zip archive; actually, this
991
+ deletes the target directories/files after making the specified
992
+ zip archive. If a directory becomes empty after removal of the
993
+ files, the directory is also removed. No deletions are done
994
+ until zip has created the archive without error. This is useful
995
+ for conserving disk space, but is potentially dangerous so it is
996
+ recommended to use it in combination with -T to test the archive
997
+ before removing all input files.
998
+
999
+ -MM
1000
+ --must-match
1001
+ All input patterns must match at least one file and all input
1002
+ files found must be readable. Normally when an input pattern
1003
+ does not match a file the "name not matched" warning is issued
1004
+ and when an input file has been found but later is missing or
1005
+ not readable a missing or not readable warning is issued. In
1006
+ either case zip continues creating the archive, with missing or
1007
+ unreadable new files being skipped and files already in the
1008
+ archive remaining unchanged. After the archive is created, if
1009
+ any files were not readable zip returns the OPEN error code (18
1010
+ on most systems) instead of the normal success return (0 on most
1011
+ systems). With -MM set, zip exits as soon as an input pattern
1012
+ is not matched (whenever the "name not matched" warning would be
1013
+ issued) or when an input file is not readable. In either case
1014
+ zip exits with an OPEN error and no archive is created.
1015
+
1016
+ This option is useful when a known list of files is to be zipped
1017
+ so any missing or unreadable files will result in an error. It
1018
+ is less useful when used with wildcards, but zip will still exit
1019
+ with an error if any input pattern doesn't match at least one
1020
+ file and if any matched files are unreadable. If you want to
1021
+ create the archive anyway and only need to know if files were
1022
+ skipped, don't use -MM and just check the return code. Also -lf
1023
+ could be useful.
1024
+
1025
+ -n suffixes
1026
+ --suffixes suffixes
1027
+ Do not attempt to compress files named with the given suffixes.
1028
+ Such files are simply stored (0% compression) in the output zip
1029
+ file, so that zip doesn't waste its time trying to compress
1030
+ them. The suffixes are separated by either colons or semi-
1031
+ colons. For example:
1032
+
1033
+ zip -rn .Z:.zip:.tiff:.gif:.snd foo foo
1034
+
1035
+ will copy everything from foo into foo.zip, but will store any
1036
+ files that end in .Z, .zip, .tiff, .gif, or .snd without trying
1037
+ to compress them (image and sound files often have their own
1038
+ specialized compression methods). By default, zip does not com-
1039
+ press files with extensions in the list
1040
+ .Z:.zip:.zoo:.arc:.lzh:.arj. Such files are stored directly in
1041
+ the output archive. The environment variable ZIPOPT can be used
1042
+ to change the default options. For example under Unix with csh:
1043
+
1044
+ setenv ZIPOPT "-n .gif:.zip"
1045
+
1046
+ To attempt compression on all files, use:
1047
+
1048
+ zip -n : foo
1049
+
1050
+ The maximum compression option -9 also attempts compression on
1051
+ all files regardless of extension.
1052
+
1053
+ On Acorn RISC OS systems the suffixes are actually filetypes (3
1054
+ hex digit format). By default, zip does not compress files with
1055
+ filetypes in the list DDC:D96:68E (i.e. Archives, CFS files and
1056
+ PackDir files).
1057
+
1058
+ -nw
1059
+ --no-wild
1060
+ Do not perform internal wildcard processing (shell processing of
1061
+ wildcards is still done by the shell unless the arguments are
1062
+ escaped). Useful if a list of paths is being read and no wild-
1063
+ card substitution is desired.
1064
+
1065
+ -N
1066
+ --notes
1067
+ [Amiga, MacOS] Save Amiga or MacOS filenotes as zipfile com-
1068
+ ments. They can be restored by using the -N option of unzip. If
1069
+ -c is used also, you are prompted for comments only for those
1070
+ files that do not have filenotes.
1071
+
1072
+ -o
1073
+ --latest-time
1074
+ Set the "last modified" time of the zip archive to the latest
1075
+ (oldest) "last modified" time found among the entries in the zip
1076
+ archive. This can be used without any other operations, if
1077
+ desired. For example:
1078
+
1079
+ zip -o foo
1080
+
1081
+ will change the last modified time of foo.zip to the latest time
1082
+ of the entries in foo.zip.
1083
+
1084
+ -O output-file
1085
+ --output-file output-file
1086
+ Process the archive changes as usual, but instead of updating
1087
+ the existing archive, output the new archive to output-file.
1088
+ Useful for updating an archive without changing the existing
1089
+ archive and the input archive must be a different file than the
1090
+ output archive.
1091
+
1092
+ This option can be used to create updated split archives. It
1093
+ can also be used with -U to copy entries from an existing
1094
+ archive to a new archive. See the EXAMPLES section below.
1095
+
1096
+ Another use is converting zip files from one split size to
1097
+ another. For instance, to convert an archive with 700 MB CD
1098
+ splits to one with 2 GB DVD splits, can use:
1099
+
1100
+ zip -s 2g cd-split.zip --out dvd-split.zip
1101
+
1102
+ which uses copy mode. See -U below. Also:
1103
+
1104
+ zip -s 0 split.zip --out unsplit.zip
1105
+
1106
+ will convert a split archive to a single-file archive.
1107
+
1108
+ Copy mode will convert stream entries (using data descriptors
1109
+ and which should be compatible with most unzips) to normal
1110
+ entries (which should be compatible with all unzips), except if
1111
+ standard encryption was used. For archives with encrypted
1112
+ entries, zipcloak will decrypt the entries and convert them to
1113
+ normal entries.
1114
+
1115
+ -p
1116
+ --paths
1117
+ Include relative file paths as part of the names of files stored
1118
+ in the archive. This is the default. The -j option junks the
1119
+ paths and just stores the names of the files.
1120
+
1121
+ -P password
1122
+ --password password
1123
+ Use password to encrypt zipfile entries (if any). THIS IS INSE-
1124
+ CURE! Many multi-user operating systems provide ways for any
1125
+ user to see the current command line of any other user; even on
1126
+ stand-alone systems there is always the threat of over-the-
1127
+ shoulder peeking. Storing the plaintext password as part of a
1128
+ command line in an automated script is even worse. Whenever
1129
+ possible, use the non-echoing, interactive prompt to enter pass-
1130
+ words. (And where security is truly important, use strong
1131
+ encryption such as Pretty Good Privacy instead of the relatively
1132
+ weak standard encryption provided by zipfile utilities.)
1133
+
1134
+ -q
1135
+ --quiet
1136
+ Quiet mode; eliminate informational messages and comment
1137
+ prompts. (Useful, for example, in shell scripts and background
1138
+ tasks).
1139
+
1140
+ -Qn
1141
+ --Q-flag n
1142
+ [QDOS] store information about the file in the file header with
1143
+ n defined as
1144
+ bit 0: Don't add headers for any file
1145
+ bit 1: Add headers for all files
1146
+ bit 2: Don't wait for interactive key press on exit
1147
+
1148
+ -r
1149
+ --recurse-paths
1150
+ Travel the directory structure recursively; for example:
1151
+
1152
+ zip -r foo.zip foo
1153
+
1154
+ or more concisely
1155
+
1156
+ zip -r foo foo
1157
+
1158
+ In this case, all the files and directories in foo are saved in
1159
+ a zip archive named foo.zip, including files with names starting
1160
+ with ".", since the recursion does not use the shell's file-name
1161
+ substitution mechanism. If you wish to include only a specific
1162
+ subset of the files in directory foo and its subdirectories, use
1163
+ the -i option to specify the pattern of files to be included.
1164
+ You should not use -r with the name ".*", since that matches
1165
+ ".." which will attempt to zip up the parent directory (proba-
1166
+ bly not what was intended).
1167
+
1168
+ Multiple source directories are allowed as in
1169
+
1170
+ zip -r foo foo1 foo2
1171
+
1172
+ which first zips up foo1 and then foo2, going down each direc-
1173
+ tory.
1174
+
1175
+ Note that while wildcards to -r are typically resolved while
1176
+ recursing down directories in the file system, any -R, -x, and
1177
+ -i wildcards are applied to internal archive pathnames once the
1178
+ directories are scanned. To have wildcards apply to files in
1179
+ subdirectories when recursing on Unix and similar systems where
1180
+ the shell does wildcard substitution, either escape all wild-
1181
+ cards or put all arguments with wildcards in quotes. This lets
1182
+ zip see the wildcards and match files in subdirectories using
1183
+ them as it recurses.
1184
+
1185
+ -R
1186
+ --recurse-patterns
1187
+ Travel the directory structure recursively starting at the cur-
1188
+ rent directory; for example:
1189
+
1190
+ zip -R foo "*.c"
1191
+
1192
+ In this case, all the files matching *.c in the tree starting at
1193
+ the current directory are stored into a zip archive named
1194
+ foo.zip. Note that *.c will match file.c, a/file.c and a/b/.c.
1195
+ More than one pattern can be listed as separate arguments. Note
1196
+ for PKZIP users: the equivalent command is
1197
+
1198
+ pkzip -rP foo *.c
1199
+
1200
+ Patterns are relative file paths as they appear in the archive,
1201
+ or will after zipping, and can have optional wildcards in them.
1202
+ For example, given the current directory is foo and under it are
1203
+ directories foo1 and foo2 and in foo1 is the file bar.c,
1204
+
1205
+ zip -R foo/*
1206
+
1207
+ will zip up foo, foo/foo1, foo/foo1/bar.c, and foo/foo2.
1208
+
1209
+ zip -R */bar.c
1210
+
1211
+ will zip up foo/foo1/bar.c. See the note for -r on escaping
1212
+ wildcards.
1213
+
1214
+ -RE
1215
+ --regex
1216
+ [WIN32] Before zip 3.0, regular expression list matching was
1217
+ enabled by default on Windows platforms. Because of confusion
1218
+ resulting from the need to escape "[" and "]" in names, it is
1219
+ now off by default for Windows so "[" and "]" are just normal
1220
+ characters in names. This option enables [] matching again.
1221
+
1222
+ -s splitsize
1223
+ --split-size splitsize
1224
+ Enable creating a split archive and set the split size. A split
1225
+ archive is an archive that could be split over many files. As
1226
+ the archive is created, if the size of the archive reaches the
1227
+ specified split size, that split is closed and the next split
1228
+ opened. In general all splits but the last will be the split
1229
+ size and the last will be whatever is left. If the entire
1230
+ archive is smaller than the split size a single-file archive is
1231
+ created.
1232
+
1233
+ Split archives are stored in numbered files. For example, if
1234
+ the output archive is named archive and three splits are
1235
+ required, the resulting archive will be in the three files
1236
+ archive.z01, archive.z02, and archive.zip. Do not change the
1237
+ numbering of these files or the archive will not be readable as
1238
+ these are used to determine the order the splits are read.
1239
+
1240
+ Split size is a number optionally followed by a multiplier.
1241
+ Currently the number must be an integer. The multiplier can
1242
+ currently be one of k (kilobytes), m (megabytes), g (gigabytes),
1243
+ or t (terabytes). As 64k is the minimum split size, numbers
1244
+ without multipliers default to megabytes. For example, to cre-
1245
+ ate a split archive called foo with the contents of the bar
1246
+ directory with splits of 670 MB that might be useful for burning
1247
+ on CDs, the command:
1248
+
1249
+ zip -s 670m -r foo bar
1250
+
1251
+ could be used.
1252
+
1253
+ Currently the old splits of a split archive are not excluded
1254
+ from a new archive, but they can be specifically excluded. If
1255
+ possible, keep the input and output archives out of the path
1256
+ being zipped when creating split archives.
1257
+
1258
+ Using -s without -sp as above creates all the splits where foo
1259
+ is being written, in this case the current directory. This
1260
+ split mode updates the splits as the archive is being created,
1261
+ requiring all splits to remain writable, but creates split
1262
+ archives that are readable by any unzip that supports split
1263
+ archives. See -sp below for enabling split pause mode which
1264
+ allows splits to be written directly to removable media.
1265
+
1266
+ The option -sv can be used to enable verbose splitting and pro-
1267
+ vide details of how the splitting is being done. The -sb option
1268
+ can be used to ring the bell when zip pauses for the next split
1269
+ destination.
1270
+
1271
+ Split archives cannot be updated, but see the -O (--out) option
1272
+ for how a split archive can be updated as it is copied to a new
1273
+ archive. A split archive can also be converted into a single-
1274
+ file archive using a split size of 0 or negating the -s option:
1275
+
1276
+ zip -s 0 split.zip --out single.zip
1277
+
1278
+ Also see -U (--copy) for more on using copy mode.
1279
+
1280
+ -sb
1281
+ --split-bell
1282
+ If splitting and using split pause mode, ring the bell when zip
1283
+ pauses for each split destination.
1284
+
1285
+ -sc
1286
+ --show-command
1287
+ Show the command line starting zip as processed and exit. The
1288
+ new command parser permutes the arguments, putting all options
1289
+ and any values associated with them before any non-option argu-
1290
+ ments. This allows an option to appear anywhere in the command
1291
+ line as long as any values that go with the option go with it.
1292
+ This option displays the command line as zip sees it, including
1293
+ any arguments from the environment such as from the ZIPOPT vari-
1294
+ able. Where allowed, options later in the command line can
1295
+ override options earlier in the command line.
1296
+
1297
+ -sf
1298
+ --show-files
1299
+ Show the files that would be operated on, then exit. For
1300
+ instance, if creating a new archive, this will list the files
1301
+ that would be added. If the option is negated, -sf-, output
1302
+ only to an open log file. Screen display is not recommended for
1303
+ large lists.
1304
+
1305
+ -so
1306
+ --show-options
1307
+ Show all available options supported by zip as compiled on the
1308
+ current system. As this command reads the option table, it
1309
+ should include all options. Each line includes the short option
1310
+ (if defined), the long option (if defined), the format of any
1311
+ value that goes with the option, if the option can be negated,
1312
+ and a small description. The value format can be no value,
1313
+ required value, optional value, single character value, number
1314
+ value, or a list of values. The output of this option is not
1315
+ intended to show how to use any option but only show what
1316
+ options are available.
1317
+
1318
+ -sp
1319
+ --split-pause
1320
+ If splitting is enabled with -s, enable split pause mode. This
1321
+ creates split archives as -s does, but stream writing is used so
1322
+ each split can be closed as soon as it is written and zip will
1323
+ pause between each split to allow changing split destination or
1324
+ media.
1325
+
1326
+ Though this split mode allows writing splits directly to remov-
1327
+ able media, it uses stream archive format that may not be read-
1328
+ able by some unzips. Before relying on splits created with -sp,
1329
+ test a split archive with the unzip you will be using.
1330
+
1331
+ To convert a stream split archive (created with -sp) to a stan-
1332
+ dard archive see the --out option.
1333
+
1334
+ -su
1335
+ --show-unicode
1336
+ As -sf, but also show Unicode version of the path if exists.
1337
+
1338
+ -sU
1339
+ --show-just-unicode
1340
+ As -sf, but only show Unicode version of the path if exists,
1341
+ otherwise show the standard version of the path.
1342
+
1343
+ -sv
1344
+ --split-verbose
1345
+ Enable various verbose messages while splitting, showing how the
1346
+ splitting is being done.
1347
+
1348
+ -S
1349
+ --system-hidden
1350
+ [MSDOS, OS/2, WIN32 and ATARI] Include system and hidden files.
1351
+ [MacOS] Includes finder invisible files, which are ignored oth-
1352
+ erwise.
1353
+
1354
+ -t mmddyyyy
1355
+ --from-date mmddyyyy
1356
+ Do not operate on files modified prior to the specified date,
1357
+ where mm is the month (00-12), dd is the day of the month
1358
+ (01-31), and yyyy is the year. The ISO 8601 date format
1359
+ yyyy-mm-dd is also accepted. For example:
1360
+
1361
+ zip -rt 12071991 infamy foo
1362
+
1363
+ zip -rt 1991-12-07 infamy foo
1364
+
1365
+ will add all the files in foo and its subdirectories that were
1366
+ last modified on or after 7 December 1991, to the zip archive
1367
+ infamy.zip.
1368
+
1369
+ -tt mmddyyyy
1370
+ --before-date mmddyyyy
1371
+ Do not operate on files modified after or at the specified date,
1372
+ where mm is the month (00-12), dd is the day of the month
1373
+ (01-31), and yyyy is the year. The ISO 8601 date format
1374
+ yyyy-mm-dd is also accepted. For example:
1375
+
1376
+ zip -rtt 11301995 infamy foo
1377
+
1378
+ zip -rtt 1995-11-30 infamy foo
1379
+
1380
+ will add all the files in foo and its subdirectories that were
1381
+ last modified before 30 November 1995, to the zip archive
1382
+ infamy.zip.
1383
+
1384
+ -T
1385
+ --test
1386
+ Test the integrity of the new zip file. If the check fails, the
1387
+ old zip file is unchanged and (with the -m option) no input
1388
+ files are removed.
1389
+
1390
+ -TT cmd
1391
+ --unzip-command cmd
1392
+ Use command cmd instead of 'unzip -tqq' to test an archive when
1393
+ the -T option is used. On Unix, to use a copy of unzip in the
1394
+ current directory instead of the standard system unzip, could
1395
+ use:
1396
+
1397
+ zip archive file1 file2 -T -TT "./unzip -tqq"
1398
+
1399
+ In cmd, {} is replaced by the name of the temporary archive,
1400
+ otherwise the name of the archive is appended to the end of the
1401
+ command. The return code is checked for success (0 on Unix).
1402
+
1403
+ -u
1404
+ --update
1405
+ Replace (update) an existing entry in the zip archive only if it
1406
+ has been modified more recently than the version already in the
1407
+ zip archive. For example:
1408
+
1409
+ zip -u stuff *
1410
+
1411
+ will add any new files in the current directory, and update any
1412
+ files which have been modified since the zip archive stuff.zip
1413
+ was last created/modified (note that zip will not try to pack
1414
+ stuff.zip into itself when you do this).
1415
+
1416
+ Note that the -u option with no input file arguments acts like
1417
+ the -f (freshen) option.
1418
+
1419
+ -U
1420
+ --copy-entries
1421
+ Copy entries from one archive to another. Requires the --out
1422
+ option to specify a different output file than the input
1423
+ archive. Copy mode is the reverse of -d delete. When delete is
1424
+ being used with --out, the selected entries are deleted from the
1425
+ archive and all other entries are copied to the new archive,
1426
+ while copy mode selects the files to include in the new archive.
1427
+ Unlike -u update, input patterns on the command line are matched
1428
+ against archive entries only and not the file system files. For
1429
+ instance,
1430
+
1431
+ zip inarchive "*.c" --copy --out outarchive
1432
+
1433
+ copies entries with names ending in .c from inarchive to out-
1434
+ archive. The wildcard must be escaped on some systems to pre-
1435
+ vent the shell from substituting names of files from the file
1436
+ system which may have no relevance to the entries in the
1437
+ archive.
1438
+
1439
+ If no input files appear on the command line and --out is used,
1440
+ copy mode is assumed:
1441
+
1442
+ zip inarchive --out outarchive
1443
+
1444
+ This is useful for changing split size for instance. Encrypting
1445
+ and decrypting entries is not yet supported using copy mode.
1446
+ Use zipcloak for that.
1447
+
1448
+ -UN v
1449
+ --unicode v
1450
+ Determine what zip should do with Unicode file names. zip 3.0,
1451
+ in addition to the standard file path, now includes the UTF-8
1452
+ translation of the path if the entry path is not entirely 7-bit
1453
+ ASCII. When an entry is missing the Unicode path, zip reverts
1454
+ back to the standard file path. The problem with using the
1455
+ standard path is this path is in the local character set of the
1456
+ zip that created the entry, which may contain characters that
1457
+ are not valid in the character set being used by the unzip.
1458
+ When zip is reading an archive, if an entry also has a Unicode
1459
+ path, zip now defaults to using the Unicode path to recreate the
1460
+ standard path using the current local character set.
1461
+
1462
+ This option can be used to determine what zip should do with
1463
+ this path if there is a mismatch between the stored standard
1464
+ path and the stored UTF-8 path (which can happen if the standard
1465
+ path was updated). In all cases, if there is a mismatch it is
1466
+ assumed that the standard path is more current and zip uses
1467
+ that. Values for v are
1468
+
1469
+ q - quit if paths do not match
1470
+
1471
+ w - warn, continue with standard path
1472
+
1473
+ i - ignore, continue with standard path
1474
+
1475
+ n - no Unicode, do not use Unicode paths
1476
+
1477
+ The default is to warn and continue.
1478
+
1479
+ Characters that are not valid in the current character set are
1480
+ escaped as #Uxxxx and #Lxxxxxx, where x is an ASCII character
1481
+ for a hex digit. The first is used if a 16-bit character number
1482
+ is sufficient to represent the Unicode character and the second
1483
+ if the character needs more than 16 bits to represent it's Uni-
1484
+ code character code. Setting -UN to
1485
+
1486
+ e - escape
1487
+
1488
+ as in
1489
+
1490
+ zip archive -sU -UN=e
1491
+
1492
+ forces zip to escape all characters that are not printable 7-bit
1493
+ ASCII.
1494
+
1495
+ Normally zip stores UTF-8 directly in the standard path field on
1496
+ systems where UTF-8 is the current character set and stores the
1497
+ UTF-8 in the new extra fields otherwise. The option
1498
+
1499
+ u - UTF-8
1500
+
1501
+ as in
1502
+
1503
+ zip archive dir -r -UN=UTF8
1504
+
1505
+ forces zip to store UTF-8 as native in the archive. Note that
1506
+ storing UTF-8 directly is the default on Unix systems that sup-
1507
+ port it. This option could be useful on Windows systems where
1508
+ the escaped path is too large to be a valid path and the UTF-8
1509
+ version of the path is smaller, but native UTF-8 is not backward
1510
+ compatible on Windows systems.
1511
+
1512
+ -v
1513
+ --verbose
1514
+ Verbose mode or print diagnostic version info.
1515
+
1516
+ Normally, when applied to real operations, this option enables
1517
+ the display of a progress indicator during compression (see -dd
1518
+ for more on dots) and requests verbose diagnostic info about
1519
+ zipfile structure oddities.
1520
+
1521
+ However, when -v is the only command line argument a diagnostic
1522
+ screen is printed instead. This should now work even if stdout
1523
+ is redirected to a file, allowing easy saving of the information
1524
+ for sending with bug reports to Info-ZIP. The version screen
1525
+ provides the help screen header with program name, version, and
1526
+ release date, some pointers to the Info-ZIP home and distribu-
1527
+ tion sites, and shows information about the target environment
1528
+ (compiler type and version, OS version, compilation date and the
1529
+ enabled optional features used to create the zip executable).
1530
+
1531
+ -V
1532
+ --VMS-portable
1533
+ [VMS] Save VMS file attributes. (Files are truncated at EOF.)
1534
+ When a -V archive is unpacked on a non-VMS system, some file
1535
+ types (notably Stream_LF text files and pure binary files
1536
+ like fixed-512) should be extracted intact. Indexed files and
1537
+ file types with embedded record sizes (notably variable-length
1538
+ record types) will probably be seen as corrupt elsewhere.
1539
+
1540
+ -VV
1541
+ --VMS-specific
1542
+ [VMS] Save VMS file attributes, and all allocated blocks in a
1543
+ file, including any data beyond EOF. Useful for moving ill-
1544
+ formed files among VMS systems. When a -VV archive is
1545
+ unpacked on a non-VMS system, almost all files will appear cor-
1546
+ rupt.
1547
+
1548
+ -w
1549
+ --VMS-versions
1550
+ [VMS] Append the version number of the files to the name,
1551
+ including multiple versions of files. Default is to use only
1552
+ the most recent version of a specified file.
1553
+
1554
+ -ww
1555
+ --VMS-dot-versions
1556
+ [VMS] Append the version number of the files to the name,
1557
+ including multiple versions of files, using the .nnn format.
1558
+ Default is to use only the most recent version of a specified
1559
+ file.
1560
+
1561
+ -ws
1562
+ --wild-stop-dirs
1563
+ Wildcards match only at a directory level. Normally zip handles
1564
+ paths as strings and given the paths
1565
+
1566
+ /foo/bar/dir/file1.c
1567
+
1568
+ /foo/bar/file2.c
1569
+
1570
+ an input pattern such as
1571
+
1572
+ /foo/bar/*
1573
+
1574
+ normally would match both paths, the * matching dir/file1.c and
1575
+ file2.c. Note that in the first case a directory boundary (/)
1576
+ was crossed in the match. With -ws no directory bounds will be
1577
+ included in the match, making wildcards local to a specific
1578
+ directory level. So, with -ws enabled, only the second path
1579
+ would be matched.
1580
+
1581
+ When using -ws, use ** to match across directory boundaries as *
1582
+ does normally.
1583
+
1584
+ -x files
1585
+ --exclude files
1586
+ Explicitly exclude the specified files, as in:
1587
+
1588
+ zip -r foo foo -x \*.o
1589
+
1590
+ which will include the contents of foo in foo.zip while exclud-
1591
+ ing all the files that end in .o. The backslash avoids the
1592
+ shell filename substitution, so that the name matching is per-
1593
+ formed by zip at all directory levels.
1594
+
1595
+ Also possible:
1596
+
1597
+ zip -r foo foo -x@exclude.lst
1598
+
1599
+ which will include the contents of foo in foo.zip while exclud-
1600
+ ing all the files that match the patterns in the file
1601
+ exclude.lst.
1602
+
1603
+ The long option forms of the above are
1604
+
1605
+ zip -r foo foo --exclude \*.o
1606
+
1607
+ and
1608
+
1609
+ zip -r foo foo --exclude @exclude.lst
1610
+
1611
+ Multiple patterns can be specified, as in:
1612
+
1613
+ zip -r foo foo -x \*.o \*.c
1614
+
1615
+ If there is no space between -x and the pattern, just one value
1616
+ is assumed (no list):
1617
+
1618
+ zip -r foo foo -x\*.o
1619
+
1620
+ See -i for more on include and exclude.
1621
+
1622
+ -X
1623
+ --no-extra
1624
+ Do not save extra file attributes (Extended Attributes on OS/2,
1625
+ uid/gid and file times on Unix). The zip format uses extra
1626
+ fields to include additional information for each entry. Some
1627
+ extra fields are specific to particular systems while others are
1628
+ applicable to all systems. Normally when zip reads entries from
1629
+ an existing archive, it reads the extra fields it knows, strips
1630
+ the rest, and adds the extra fields applicable to that system.
1631
+ With -X, zip strips all old fields and only includes the Unicode
1632
+ and Zip64 extra fields (currently these two extra fields cannot
1633
+ be disabled).
1634
+
1635
+ Negating this option, -X-, includes all the default extra
1636
+ fields, but also copies over any unrecognized extra fields.
1637
+
1638
+ -y
1639
+ --symlinks
1640
+ For UNIX and VMS (V8.3 and later), store symbolic links as such
1641
+ in the zip archive, instead of compressing and storing the file
1642
+ referred to by the link. This can avoid multiple copies of
1643
+ files being included in the archive as zip recurses the direc-
1644
+ tory trees and accesses files directly and by links.
1645
+
1646
+ -z
1647
+ --archive-comment
1648
+ Prompt for a multi-line comment for the entire zip archive. The
1649
+ comment is ended by a line containing just a period, or an end
1650
+ of file condition (^D on Unix, ^Z on MSDOS, OS/2, and VMS). The
1651
+ comment can be taken from a file:
1652
+
1653
+ zip -z foo < foowhat
1654
+
1655
+ -Z cm
1656
+ --compression-method cm
1657
+ Set the default compression method. Currently the main methods
1658
+ supported by zip are store and deflate. Compression method can
1659
+ be set to:
1660
+
1661
+ store - Setting the compression method to store forces zip to
1662
+ store entries with no compression. This is generally faster
1663
+ than compressing entries, but results in no space savings. This
1664
+ is the same as using -0 (compression level zero).
1665
+
1666
+ deflate - This is the default method for zip. If zip determines
1667
+ that storing is better than deflation, the entry will be stored
1668
+ instead.
1669
+
1670
+ bzip2 - If bzip2 support is compiled in, this compression method
1671
+ also becomes available. Only some modern unzips currently sup-
1672
+ port the bzip2 compression method, so test the unzip you will be
1673
+ using before relying on archives using this method (compression
1674
+ method 12).
1675
+
1676
+ For example, to add bar.c to archive foo using bzip2 compres-
1677
+ sion:
1678
+
1679
+ zip -Z bzip2 foo bar.c
1680
+
1681
+ The compression method can be abbreviated:
1682
+
1683
+ zip -Zb foo bar.c
1684
+
1685
+ -#
1686
+ (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
1687
+ Regulate the speed of compression using the specified digit #,
1688
+ where -0 indicates no compression (store all files), -1 indi-
1689
+ cates the fastest compression speed (less compression) and -9
1690
+ indicates the slowest compression speed (optimal compression,
1691
+ ignores the suffix list). The default compression level is -6.
1692
+
1693
+ Though still being worked, the intention is this setting will
1694
+ control compression speed for all compression methods. Cur-
1695
+ rently only deflation is controlled.
1696
+
1697
+ -!
1698
+ --use-privileges
1699
+ [WIN32] Use priviliges (if granted) to obtain all aspects of
1700
+ WinNT security.
1701
+
1702
+ -@
1703
+ --names-stdin
1704
+ Take the list of input files from standard input. Only one file-
1705
+ name per line.
1706
+
1707
+ -$
1708
+ --volume-label
1709
+ [MSDOS, OS/2, WIN32] Include the volume label for the drive
1710
+ holding the first file to be compressed. If you want to include
1711
+ only the volume label or to force a specific drive, use the
1712
+ drive name as first file name, as in:
1713
+
1714
+ zip -$ foo a: c:bar
1715
+
1716
+ EXAMPLES
1717
+ The simplest example:
1718
+
1719
+ zip stuff *
1720
+
1721
+ creates the archive stuff.zip (assuming it does not exist) and puts all
1722
+ the files in the current directory in it, in compressed form (the .zip
1723
+ suffix is added automatically, unless the archive name contains a dot
1724
+ already; this allows the explicit specification of other suffixes).
1725
+
1726
+ Because of the way the shell on Unix does filename substitution, files
1727
+ starting with "." are not included; to include these as well:
1728
+
1729
+ zip stuff .* *
1730
+
1731
+ Even this will not include any subdirectories from the current direc-
1732
+ tory.
1733
+
1734
+ To zip up an entire directory, the command:
1735
+
1736
+ zip -r foo foo
1737
+
1738
+ creates the archive foo.zip, containing all the files and directories
1739
+ in the directory foo that is contained within the current directory.
1740
+
1741
+ You may want to make a zip archive that contains the files in foo,
1742
+ without recording the directory name, foo. You can use the -j option
1743
+ to leave off the paths, as in:
1744
+
1745
+ zip -j foo foo/*
1746
+
1747
+ If you are short on disk space, you might not have enough room to hold
1748
+ both the original directory and the corresponding compressed zip
1749
+ archive. In this case, you can create the archive in steps using the
1750
+ -m option. If foo contains the subdirectories tom, dick, and harry,
1751
+ you can:
1752
+
1753
+ zip -rm foo foo/tom
1754
+ zip -rm foo foo/dick
1755
+ zip -rm foo foo/harry
1756
+
1757
+ where the first command creates foo.zip, and the next two add to it.
1758
+ At the completion of each zip command, the last created archive is
1759
+ deleted, making room for the next zip command to function.
1760
+
1761
+ Use -s to set the split size and create a split archive. The size is
1762
+ given as a number followed optionally by one of k (kB), m (MB), g (GB),
1763
+ or t (TB). The command
1764
+
1765
+ zip -s 2g -r split.zip foo
1766
+
1767
+ creates a split archive of the directory foo with splits no bigger than
1768
+ 2 GB each. If foo contained 5 GB of contents and the contents were
1769
+ stored in the split archive without compression (to make this example
1770
+ simple), this would create three splits, split.z01 at 2 GB, split.z02
1771
+ at 2 GB, and split.zip at a little over 1 GB.
1772
+
1773
+ The -sp option can be used to pause zip between splits to allow chang-
1774
+ ing removable media, for example, but read the descriptions and warn-
1775
+ ings for both -s and -sp below.
1776
+
1777
+ Though zip does not update split archives, zip provides the new option
1778
+ -O (--output-file) to allow split archives to be updated and saved in a
1779
+ new archive. For example,
1780
+
1781
+ zip inarchive.zip foo.c bar.c --out outarchive.zip
1782
+
1783
+ reads archive inarchive.zip, even if split, adds the files foo.c and
1784
+ bar.c, and writes the resulting archive to outarchive.zip. If inar-
1785
+ chive.zip is split then outarchive.zip defaults to the same split size.
1786
+ Be aware that outarchive.zip and any split files that are created with
1787
+ it are always overwritten without warning. This may be changed in the
1788
+ future.
1789
+
1790
+ PATTERN MATCHING
1791
+ This section applies only to Unix. Watch this space for details on
1792
+ MSDOS and VMS operation. However, the special wildcard characters *
1793
+ and [] below apply to at least MSDOS also.
1794
+
1795
+ The Unix shells (sh, csh, bash, and others) normally do filename sub-
1796
+ stitution (also called "globbing") on command arguments. Generally the
1797
+ special characters are:
1798
+
1799
+ ? match any single character
1800
+
1801
+ * match any number of characters (including none)
1802
+
1803
+ [] match any character in the range indicated within the brackets
1804
+ (example: [a-f], [0-9]). This form of wildcard matching allows
1805
+ a user to specify a list of characters between square brackets
1806
+ and if any of the characters match the expression matches. For
1807
+ example:
1808
+
1809
+ zip archive "*.[hc]"
1810
+
1811
+ would archive all files in the current directory that end in .h
1812
+ or .c.
1813
+
1814
+ Ranges of characters are supported:
1815
+
1816
+ zip archive "[a-f]*"
1817
+
1818
+ would add to the archive all files starting with "a" through
1819
+ "f".
1820
+
1821
+ Negation is also supported, where any character in that position
1822
+ not in the list matches. Negation is supported by adding ! or ^
1823
+ to the beginning of the list:
1824
+
1825
+ zip archive "*.[!o]"
1826
+
1827
+ matches files that don't end in ".o".
1828
+
1829
+ On WIN32, [] matching needs to be turned on with the -RE option
1830
+ to avoid the confusion that names with [ or ] have caused.
1831
+
1832
+ When these characters are encountered (without being escaped with a
1833
+ backslash or quotes), the shell will look for files relative to the
1834
+ current path that match the pattern, and replace the argument with a
1835
+ list of the names that matched.
1836
+
1837
+ The zip program can do the same matching on names that are in the zip
1838
+ archive being modified or, in the case of the -x (exclude) or -i
1839
+ (include) options, on the list of files to be operated on, by using
1840
+ backslashes or quotes to tell the shell not to do the name expansion.
1841
+ In general, when zip encounters a name in the list of files to do, it
1842
+ first looks for the name in the file system. If it finds it, it then
1843
+ adds it to the list of files to do. If it does not find it, it looks
1844
+ for the name in the zip archive being modified (if it exists), using
1845
+ the pattern matching characters described above, if present. For each
1846
+ match, it will add that name to the list of files to be processed,
1847
+ unless this name matches one given with the -x option, or does not
1848
+ match any name given with the -i option.
1849
+
1850
+ The pattern matching includes the path, and so patterns like \*.o match
1851
+ names that end in ".o", no matter what the path prefix is. Note that
1852
+ the backslash must precede every special character (i.e. ?*[]), or the
1853
+ entire argument must be enclosed in double quotes ("").
1854
+
1855
+ In general, use backslashes or double quotes for paths that have wild-
1856
+ cards to make zip do the pattern matching for file paths, and always
1857
+ for paths and strings that have spaces or wildcards for -i, -x, -R, -d,
1858
+ and -U and anywhere zip needs to process the wildcards.
1859
+
1860
+ ENVIRONMENT
1861
+ The following environment variables are read and used by zip as
1862
+ described.
1863
+
1864
+ ZIPOPT
1865
+ contains default options that will be used when running zip.
1866
+ The contents of this environment variable will get added to the
1867
+ command line just after the zip command.
1868
+
1869
+ ZIP
1870
+ [Not on RISC OS and VMS] see ZIPOPT
1871
+
1872
+ Zip$Options
1873
+ [RISC OS] see ZIPOPT
1874
+
1875
+ Zip$Exts
1876
+ [RISC OS] contains extensions separated by a : that will cause
1877
+ native filenames with one of the specified extensions to be
1878
+ added to the zip file with basename and extension swapped.
1879
+
1880
+ ZIP_OPTS
1881
+ [VMS] see ZIPOPT
1882
+
1883
+ SEE ALSO
1884
+ compress(1), shar(1L), tar(1), unzip(1L), gzip(1L)
1885
+
1886
+ DIAGNOSTICS
1887
+ The exit status (or error level) approximates the exit codes defined by
1888
+ PKWARE and takes on the following values, except under VMS:
1889
+
1890
+ 0 normal; no errors or warnings detected.
1891
+
1892
+ 2 unexpected end of zip file.
1893
+
1894
+ 3 a generic error in the zipfile format was detected. Pro-
1895
+ cessing may have completed successfully anyway; some bro-
1896
+ ken zipfiles created by other archivers have simple work-
1897
+ arounds.
1898
+
1899
+ 4 zip was unable to allocate memory for one or more buffers
1900
+ during program initialization.
1901
+
1902
+ 5 a severe error in the zipfile format was detected. Pro-
1903
+ cessing probably failed immediately.
1904
+
1905
+ 6 entry too large to be processed (such as input files
1906
+ larger than 2 GB when not using Zip64 or trying to read
1907
+ an existing archive that is too large) or entry too large
1908
+ to be split with zipsplit
1909
+
1910
+ 7 invalid comment format
1911
+
1912
+ 8 zip -T failed or out of memory
1913
+
1914
+ 9 the user aborted zip prematurely with control-C (or simi-
1915
+ lar)
1916
+
1917
+ 10 zip encountered an error while using a temp file
1918
+
1919
+ 11 read or seek error
1920
+
1921
+ 12 zip has nothing to do
1922
+
1923
+ 13 missing or empty zip file
1924
+
1925
+ 14 error writing to a file
1926
+
1927
+ 15 zip was unable to create a file to write to
1928
+
1929
+ 16 bad command line parameters
1930
+
1931
+ 18 zip could not open a specified file to read
1932
+
1933
+ 19 zip was compiled with options not supported on this sys-
1934
+ tem
1935
+
1936
+ VMS interprets standard Unix (or PC) return values as other, scarier-
1937
+ looking things, so zip instead maps them into VMS-style status codes.
1938
+ In general, zip sets VMS Facility = 1955 (0x07A3), Code = 2* Unix_sta-
1939
+ tus, and an appropriate Severity (as specified in ziperr.h). More
1940
+ details are included in the VMS-specific documentation. See
1941
+ [.vms]NOTES.TXT and [.vms]vms_msg_gen.c.
1942
+
1943
+ BUGS
1944
+ zip 3.0 is not compatible with PKUNZIP 1.10. Use zip 1.1 to produce zip
1945
+ files which can be extracted by PKUNZIP 1.10.
1946
+
1947
+ zip files produced by zip 3.0 must not be updated by zip 1.1 or PKZIP
1948
+ 1.10, if they contain encrypted members or if they have been produced
1949
+ in a pipe or on a non-seekable device. The old versions of zip or PKZIP
1950
+ would create an archive with an incorrect format. The old versions can
1951
+ list the contents of the zip file but cannot extract it anyway (because
1952
+ of the new compression algorithm). If you do not use encryption and
1953
+ use regular disk files, you do not have to care about this problem.
1954
+
1955
+ Under VMS, not all of the odd file formats are treated properly. Only
1956
+ stream-LF format zip files are expected to work with zip. Others can
1957
+ be converted using Rahul Dhesi's BILF program. This version of zip
1958
+ handles some of the conversion internally. When using Kermit to trans-
1959
+ fer zip files from VMS to MSDOS, type "set file type block" on VMS.
1960
+ When transfering from MSDOS to VMS, type "set file type fixed" on VMS.
1961
+ In both cases, type "set file type binary" on MSDOS.
1962
+
1963
+ Under some older VMS versions, zip may hang for file specifications
1964
+ that use DECnet syntax foo::*.*.
1965
+
1966
+ On OS/2, zip cannot match some names, such as those including an excla-
1967
+ mation mark or a hash sign. This is a bug in OS/2 itself: the 32-bit
1968
+ DosFindFirst/Next don't find such names. Other programs such as GNU
1969
+ tar are also affected by this bug.
1970
+
1971
+ Under OS/2, the amount of Extended Attributes displayed by DIR is (for
1972
+ compatibility) the amount returned by the 16-bit version of DosQuery-
1973
+ PathInfo(). Otherwise OS/2 1.3 and 2.0 would report different EA sizes
1974
+ when DIRing a file. However, the structure layout returned by the
1975
+ 32-bit DosQueryPathInfo() is a bit different, it uses extra padding
1976
+ bytes and link pointers (it's a linked list) to have all fields on
1977
+ 4-byte boundaries for portability to future RISC OS/2 versions. There-
1978
+ fore the value reported by zip (which uses this 32-bit-mode size) dif-
1979
+ fers from that reported by DIR. zip stores the 32-bit format for
1980
+ portability, even the 16-bit MS-C-compiled version running on OS/2 1.3,
1981
+ so even this one shows the 32-bit-mode size.
1982
+
1983
+ AUTHORS
1984
+ Copyright (C) 1997-2008 Info-ZIP.
1985
+
1986
+ Currently distributed under the Info-ZIP license.
1987
+
1988
+ Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly,
1989
+ Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush and
1990
+ Paul Kienitz.
1991
+
1992
+ Original copyright:
1993
+
1994
+ Permission is granted to any individual or institution to use, copy, or
1995
+ redistribute this software so long as all of the original files are
1996
+ included, that it is not sold for profit, and that this copyright
1997
+ notice is retained.
1998
+
1999
+ LIKE ANYTHING ELSE THAT'S FREE, ZIP AND ITS ASSOCIATED UTILITIES ARE
2000
+ PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED
2001
+ OR IMPLIED. IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
2002
+ DAMAGES RESULTING FROM THE USE OF THIS SOFTWARE.
2003
+
2004
+ Please send bug reports and comments using the web page at: www.info-
2005
+ zip.org. For bug reports, please include the version of zip (see
2006
+ zip -h), the make options used to compile it (see zip -v), the machine
2007
+ and operating system in use, and as much additional information as pos-
2008
+ sible.
2009
+
2010
+ ACKNOWLEDGEMENTS
2011
+ Thanks to R. P. Byrne for his Shrink.Pas program, which inspired this
2012
+ project, and from which the shrink algorithm was stolen; to Phil Katz
2013
+ for placing in the public domain the zip file format, compression for-
2014
+ mat, and .ZIP filename extension, and for accepting minor changes to
2015
+ the file format; to Steve Burg for clarifications on the deflate for-
2016
+ mat; to Haruhiko Okumura and Leonid Broukhis for providing some useful
2017
+ ideas for the compression algorithm; to Keith Petersen, Rich Wales,
2018
+ Hunter Goatley and Mark Adler for providing a mailing list and ftp site
2019
+ for the Info-ZIP group to use; and most importantly, to the Info-ZIP
2020
+ group itself (listed in the file infozip.who) without whose tireless
2021
+ testing and bug-fixing efforts a portable zip would not have been pos-
2022
+ sible. Finally we should thank (blame) the first Info-ZIP moderator,
2023
+ David Kirschbaum, for getting us into this mess in the first place.
2024
+ The manual page was rewritten for Unix by R. P. C. Rodgers and updated
2025
+ by E. Gordon for zip 3.0.
2026
+
2027
+ Info-ZIP 16 June 2008 (v3.0) ZIP(1L)