3653 lines
96 KiB
HTML
3653 lines
96 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of ZIP</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>ZIP</H1>
|
|
Section: User Commands (1)<BR>Updated: 16 June 2008 (v3.0)<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
zip - package and compress (archive) files
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>zip</B>
|
|
|
|
[-<B>aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$</B>]
|
|
|
|
[--longoption ...]
|
|
[-<B>b</B> path]
|
|
|
|
[-<B>n</B> suffixes]
|
|
|
|
[-<B>t</B> date]
|
|
|
|
[-<B>tt</B> date]
|
|
|
|
[<I>zipfile</I> [<I>file</I> ...]]
|
|
[<B>-xi</B> list]
|
|
<P>
|
|
|
|
<B>zipcloak</B>
|
|
|
|
(see separate man page)
|
|
<P>
|
|
|
|
<B>zipnote</B>
|
|
|
|
(see separate man page)
|
|
<P>
|
|
|
|
<B>zipsplit</B>
|
|
|
|
(see separate man page)
|
|
<P>
|
|
|
|
Note: Command line processing in
|
|
<I>zip</I>
|
|
|
|
has been changed to support long options and handle all
|
|
options and arguments more consistently. Some old command
|
|
lines that depend on command line inconsistencies may no longer
|
|
work.
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<I>zip</I>
|
|
|
|
is a compression and file packaging utility for Unix, VMS, MSDOS,
|
|
OS/2, Windows 9x/NT/XP, Minix, Atari, Macintosh, Amiga, and Acorn
|
|
RISC OS. It is analogous to a combination of the Unix commands
|
|
<I><A HREF="/cgi-bin/man/man2html?1+tar">tar</A></I>(1)
|
|
|
|
and
|
|
<I><A HREF="/cgi-bin/man/man2html?1+compress">compress</A></I>(1)
|
|
|
|
and is compatible with PKZIP (Phil Katz's ZIP for MSDOS systems).
|
|
<P>
|
|
|
|
A companion program
|
|
(<I><A HREF="/cgi-bin/man/man2html?1+unzip">unzip</A></I>(1))
|
|
|
|
unpacks
|
|
<I>zip</I>
|
|
|
|
archives.
|
|
The
|
|
<I>zip</I>
|
|
|
|
and
|
|
<I><A HREF="/cgi-bin/man/man2html?1+unzip">unzip</A></I>(1)
|
|
|
|
programs can work with archives produced by PKZIP (supporting
|
|
most PKZIP features up to PKZIP version 4.6),
|
|
and PKZIP and PKUNZIP can work with archives produced by
|
|
<I>zip</I> (with some exceptions, notably streamed archives,
|
|
but recent changes in the zip file standard may facilitate
|
|
better compatibility).
|
|
<I>zip</I>
|
|
|
|
version 3.0 is compatible with PKZIP 2.04 and also supports
|
|
the Zip64 extensions of PKZIP 4.5 which allow archives
|
|
as well as files to exceed the previous 2 GB limit (4 GB in
|
|
some cases). <I>zip</I> also now supports <B>bzip2</B> compression
|
|
if the <B>bzip2</B> library is included when <I>zip</I> is compiled.
|
|
Note that PKUNZIP 1.10 cannot extract files produced by
|
|
PKZIP 2.04 or
|
|
<I>zip 3.0</I>. You must use PKUNZIP 2.04g or
|
|
<I>unzip 5.0p1</I> (or later versions) to extract them.
|
|
<P>
|
|
|
|
See the <B>EXAMPLES</B> section at the bottom of this page
|
|
for examples of some typical uses of <I>zip</I>.
|
|
<P>
|
|
|
|
<B>Large Archives and Zip64.</B>
|
|
<I>zip</I>
|
|
|
|
automatically uses the Zip64 extensions when files larger than 4 GB are
|
|
added to an archive, an archive containing Zip64 entries is updated
|
|
(if the resulting archive still needs Zip64),
|
|
the size of the archive will exceed 4 GB, or when the
|
|
number of entries in the archive will exceed about 64K.
|
|
Zip64 is also used for archives streamed from standard input as the size
|
|
of such archives are not known in advance, but the option <B>-fz-</B> can
|
|
be used to force <I>zip</I> to create PKZIP 2 compatible archives (as long
|
|
as Zip64 extensions are not needed). You must use a PKZIP 4.5
|
|
compatible unzip, such as <I>unzip 6.0</I> or later, to extract files
|
|
using the Zip64 extensions.
|
|
<P>
|
|
|
|
In addition, streamed archives, entries encrypted with standard encryption,
|
|
or split archives created with the pause option may not be compatible with
|
|
PKZIP as data descriptors are used
|
|
and PKZIP at the time of this writing does not support data descriptors
|
|
(but recent changes in the PKWare published zip standard now include some
|
|
support for the data descriptor format <I>zip</I> uses).
|
|
<P>
|
|
<P>
|
|
|
|
<B>Mac OS X.</B> Though previous Mac versions had their own <I>zip</I> port,
|
|
<I>zip</I> supports Mac OS X as part of the Unix port and most Unix features
|
|
apply. References to "MacOS" below generally refer to MacOS versions older
|
|
than OS X. Support for some Mac OS features in the Unix Mac OS X port, such
|
|
as resource forks, is expected in the next <I>zip</I> release.
|
|
<P>
|
|
<P>
|
|
|
|
For a brief help on <I>zip</I> and <I>unzip</I>,
|
|
run each without specifying any parameters on the command line.
|
|
<P>
|
|
<A NAME="lbAE"> </A>
|
|
<H2>USE</H2>
|
|
|
|
<P>
|
|
|
|
The program is useful for packaging a set of files for distribution;
|
|
for archiving files;
|
|
and for saving disk space by temporarily
|
|
compressing unused files or directories.
|
|
<P>
|
|
|
|
The
|
|
<I>zip</I>
|
|
|
|
program puts one or more compressed files into a single
|
|
<I>zip</I>
|
|
|
|
archive,
|
|
along with information about the files
|
|
(name, path, date, time of last modification, protection,
|
|
and check information to verify file integrity).
|
|
An entire directory structure can be packed into a
|
|
<I>zip</I>
|
|
|
|
archive with a single command.
|
|
Compression ratios of 2:1 to 3:1 are common for text files.
|
|
<I>zip</I>
|
|
|
|
has one compression method (deflation) and can also store files without
|
|
compression. (If <B>bzip2</B> support is added, <I>zip</I> can also
|
|
compress using <B>bzip2</B> compression, but such entries require a
|
|
reasonably modern unzip to decompress. When <B>bzip2</B> compression
|
|
is selected, it replaces deflation as the default method.)
|
|
<I>zip</I>
|
|
|
|
automatically chooses the better of the two (deflation or store or, if
|
|
<B>bzip2</B> is selected, <B>bzip2</B> or store) for each file to be
|
|
compressed.
|
|
<P>
|
|
|
|
<B>Command format.</B> The basic command format is
|
|
<DL COMPACT>
|
|
<DT id="1"><DD>
|
|
<B>zip</B> options archive inpath inpath ...
|
|
</DL>
|
|
<P>
|
|
|
|
where <B>archive</B> is a new or existing <I>zip</I> archive
|
|
and <B>inpath</B> is a directory or file path optionally including wildcards.
|
|
When given the name of an existing
|
|
<I>zip</I>
|
|
|
|
archive,
|
|
<I>zip</I>
|
|
|
|
will replace identically named entries in the
|
|
<I>zip</I>
|
|
|
|
archive (matching the relative names as stored in
|
|
the archive) or add entries for new names.
|
|
For example,
|
|
if
|
|
<I>foo.zip</I>
|
|
|
|
exists and contains
|
|
<I>foo/file1</I>
|
|
|
|
and
|
|
<I>foo/file2</I>,
|
|
|
|
and the directory
|
|
<I>foo</I>
|
|
|
|
contains the files
|
|
<I>foo/file1</I>
|
|
|
|
and
|
|
<I>foo/file3</I>,
|
|
|
|
then:
|
|
<DL COMPACT>
|
|
<DT id="2"><DD>
|
|
zip -r foo.zip foo
|
|
</DL>
|
|
<P>
|
|
|
|
or more concisely
|
|
<DL COMPACT>
|
|
<DT id="3"><DD>
|
|
zip -r foo foo
|
|
</DL>
|
|
<P>
|
|
|
|
will replace
|
|
<I>foo/file1</I>
|
|
|
|
in
|
|
<I>foo.zip</I>
|
|
|
|
and add
|
|
<I>foo/file3</I>
|
|
|
|
to
|
|
<I>foo.zip</I>.
|
|
|
|
After this,
|
|
<I>foo.zip</I>
|
|
|
|
contains
|
|
<I>foo/file1</I>,
|
|
|
|
<I>foo/file2</I>,
|
|
|
|
and
|
|
<I>foo/file3</I>,
|
|
|
|
with
|
|
<I>foo/file2</I>
|
|
|
|
unchanged from before.
|
|
<P>
|
|
|
|
So if before the zip command is executed <I>foo.zip</I> has:
|
|
<DL COMPACT>
|
|
<DT id="4"><DD>
|
|
foo/file1 foo/file2
|
|
</DL>
|
|
<P>
|
|
|
|
and directory foo has:
|
|
<DL COMPACT>
|
|
<DT id="5"><DD>
|
|
file1 file3
|
|
</DL>
|
|
<P>
|
|
|
|
then <I>foo.zip</I> will have:
|
|
<DL COMPACT>
|
|
<DT id="6"><DD>
|
|
foo/file1 foo/file2 foo/file3
|
|
</DL>
|
|
<P>
|
|
|
|
where <I>foo/file1</I> is replaced and
|
|
<I>foo/file3</I> is new.
|
|
<P>
|
|
|
|
<B>-@ file lists.</B> If a file list is specified as
|
|
<B>-@</B>
|
|
[Not on MacOS],
|
|
<I>zip</I>
|
|
|
|
takes the list of input files from standard input instead of from
|
|
the command line. For example,
|
|
<DL COMPACT>
|
|
<DT id="7"><DD>
|
|
zip -@ foo
|
|
</DL>
|
|
<P>
|
|
|
|
will store the files listed one per line on stdin in <I>foo.zip</I>.
|
|
<P>
|
|
|
|
Under Unix,
|
|
this option can be used to powerful effect in conjunction with the
|
|
<I>find</I> (1)
|
|
command.
|
|
For example,
|
|
to archive all the C source files in the current directory and
|
|
its subdirectories:
|
|
<DL COMPACT>
|
|
<DT id="8"><DD>
|
|
find . -name "*.[ch]" -print | zip source -@
|
|
</DL>
|
|
<P>
|
|
|
|
(note that the pattern must be quoted to keep the shell from expanding it).
|
|
<P>
|
|
|
|
<B>Streaming input and output.</B>
|
|
<I>zip</I>
|
|
|
|
will also accept a single dash ("-") as the zip file name, in which case it
|
|
will write the zip file to standard output, allowing the output to be piped
|
|
to another program. For example:
|
|
<DL COMPACT>
|
|
<DT id="9"><DD>
|
|
zip -r - . | dd of=/dev/nrst0 obs=16k
|
|
</DL>
|
|
<P>
|
|
|
|
would write the zip output directly to a tape with the specified block size
|
|
for the purpose of backing up the current directory.
|
|
<P>
|
|
|
|
<I>zip</I>
|
|
|
|
also accepts a single dash ("-") as the name of a file to be compressed, in
|
|
which case it will read the file from standard input, allowing zip to take
|
|
input from another program. For example:
|
|
<DL COMPACT>
|
|
<DT id="10"><DD>
|
|
tar cf - . | zip backup -
|
|
</DL>
|
|
<P>
|
|
|
|
would compress the output of the tar command for the purpose of backing up
|
|
the current directory. This generally produces better compression than
|
|
the previous example using the -r option because
|
|
<I>zip</I>
|
|
|
|
can take advantage of redundancy between files. The backup can be restored
|
|
using the command
|
|
<DL COMPACT>
|
|
<DT id="11"><DD>
|
|
unzip -p backup | tar xf -
|
|
</DL>
|
|
<P>
|
|
|
|
When no zip file name is given and stdout is not a terminal,
|
|
<I>zip</I>
|
|
|
|
acts as a filter, compressing standard input to standard output.
|
|
For example,
|
|
<DL COMPACT>
|
|
<DT id="12"><DD>
|
|
tar cf - . | zip | dd of=/dev/nrst0 obs=16k
|
|
</DL>
|
|
<P>
|
|
|
|
is equivalent to
|
|
<DL COMPACT>
|
|
<DT id="13"><DD>
|
|
tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
|
|
</DL>
|
|
<P>
|
|
|
|
<I>zip</I>
|
|
|
|
archives created in this manner can be extracted with the program
|
|
<I>funzip</I>
|
|
|
|
which is provided in the
|
|
<I>unzip</I>
|
|
|
|
package, or by
|
|
<I>gunzip</I>
|
|
|
|
which is provided in the
|
|
<I>gzip</I>
|
|
|
|
package (but some
|
|
<I>gunzip</I>
|
|
|
|
may not support this if
|
|
<I>zip</I>
|
|
|
|
used the Zip64 extensions). For example:
|
|
<DL COMPACT>
|
|
<DT id="14"><DD>
|
|
dd if=/dev/nrst0 ibs=16k | funzip | tar xvf -
|
|
</DL>
|
|
<P>
|
|
|
|
The stream can also be saved to a file and
|
|
<I>unzip</I>
|
|
|
|
used.
|
|
<P>
|
|
|
|
If Zip64 support for large files and archives is enabled and
|
|
<I>zip</I> is used as a filter, <I>zip</I> creates a Zip64 archive
|
|
that requires a PKZIP 4.5 or later compatible unzip to read it. This is
|
|
to avoid amgibuities in the zip file structure as defined in the current
|
|
zip standard (PKWARE AppNote) where the decision to use Zip64 needs to
|
|
be made before data is written for the entry, but for a stream the size
|
|
of the data is not known at that point. If the data is known to be smaller
|
|
than 4 GB, the option <B>-fz-</B> can be used to prevent use of Zip64,
|
|
but <I>zip</I> will exit with an error if Zip64 was in fact needed.
|
|
<I>zip 3</I> and <I>unzip 6</I> and later can read archives with Zip64
|
|
entries. Also, <I>zip</I> removes the Zip64 extensions if not needed
|
|
when archive entries are copied (see the <B>-U</B> (<B>--copy</B>)
|
|
option).
|
|
<P>
|
|
|
|
When directing the output to another file, note that all options should be
|
|
before the redirection including <B>-x</B>. For example:
|
|
<DL COMPACT>
|
|
<DT id="15"><DD>
|
|
zip archive "*.h" "*.c" -x donotinclude.h orthis.h > tofile
|
|
</DL>
|
|
<P>
|
|
|
|
<B>Zip files.</B> When changing an existing
|
|
<I>zip</I>
|
|
|
|
archive,
|
|
<I>zip</I>
|
|
|
|
will write a temporary file with the new contents,
|
|
and only replace the old one when the process of creating the new version
|
|
has been completed without error.
|
|
<P>
|
|
|
|
If the name of the
|
|
<I>zip</I>
|
|
|
|
archive does not contain an extension, the extension
|
|
<B>.zip</B>
|
|
is added. If the name already contains an extension other than
|
|
<B>.zip</B>,
|
|
the existing extension is kept unchanged. However, split archives
|
|
(archives split over multiple files) require the <B>.zip</B> extension
|
|
on the last split.
|
|
<P>
|
|
|
|
<B>Scanning and reading files.</B>
|
|
When <I>zip</I> starts, it scans for files to process (if needed). If
|
|
this scan takes longer than about 5 seconds, <I>zip</I> will display
|
|
a "Scanning files" message and start displaying progress dots every 2 seconds
|
|
or every so many entries processed, whichever takes longer. If there is more
|
|
than 2 seconds between dots it could indicate that finding each file is taking
|
|
time and could mean a slow network connection for example.
|
|
(Actually the initial file scan is
|
|
a two-step process where the directory scan is followed by a sort and these
|
|
two steps are separated with a space in the dots. If updating an existing
|
|
archive, a space also appears between the existing file scan and the new
|
|
file scan.) The scanning files dots are not controlled by the <B>-ds</B>
|
|
dot size option, but the dots are turned off by the <B>-q</B> quiet option. The
|
|
<B>-sf</B> show files option can be used to scan for files and get the list of
|
|
files scanned without actually processing them.
|
|
<P>
|
|
|
|
If <I>zip</I> is not able to read a file, it
|
|
issues a warning but
|
|
continues. See the <B>-MM</B> option below for more on how <I>zip</I> handles
|
|
patterns that are not matched and files that are not readable.
|
|
If some files were skipped, a
|
|
warning is issued at the end of the zip operation noting how many files
|
|
were read and how many skipped.
|
|
<P>
|
|
|
|
<B>Command modes.</B> <I>zip</I> now supports two distinct types of command
|
|
modes, <B>external</B> and <B>internal</B>. The <B>external</B> modes
|
|
(add, update, and freshen) read files from the file system (as well as from an
|
|
existing archive) while the <B>internal</B> modes (delete and copy) operate
|
|
exclusively on entries in an existing archive.
|
|
<P>
|
|
|
|
<DL COMPACT>
|
|
<DT id="16"><B>add </B>
|
|
|
|
<DD>
|
|
Update existing entries and add new files. If the archive does not exist
|
|
create it. This is the default mode.
|
|
<DT id="17"><B>update </B>(<B>-u</B>)
|
|
|
|
<DD>
|
|
Update existing entries if newer on the file system and add new files. If
|
|
the archive does not exist issue warning then create a new archive.
|
|
<DT id="18"><B>freshen </B>(<B>-f</B>)
|
|
|
|
<DD>
|
|
Update existing entries of an archive if newer on the file system.
|
|
Does not add new files to the archive.
|
|
<DT id="19"><B>delete </B>(<B>-d</B>)
|
|
|
|
<DD>
|
|
Select entries in an existing archive and delete them.
|
|
<DT id="20"><B>copy </B>(<B>-U</B>)
|
|
|
|
<DD>
|
|
Select entries in an existing archive and copy them to a new archive.
|
|
This new mode is similar to <B>update</B> but command line patterns
|
|
select entries in the existing archive rather than files from
|
|
the file system and it uses the <B>--out</B> option to write the
|
|
resulting archive to a new file rather than update the existing
|
|
archive, leaving the original archive unchanged.
|
|
</DL>
|
|
<P>
|
|
|
|
The new File Sync option (<B>-FS</B>) is also considered a new mode,
|
|
though it is similar to <B>update</B>. This mode synchronizes the
|
|
archive with the files on the OS, only replacing files in the
|
|
archive if the file time or size of the OS file is different, adding
|
|
new files, and deleting entries from the archive where there is
|
|
no matching file. As this mode can delete entries from the archive,
|
|
consider making a backup copy of the archive.
|
|
<P>
|
|
Also see <B>-DF</B> for creating difference archives.
|
|
<P>
|
|
See each option description below for details and the <B>EXAMPLES</B> section
|
|
below for examples.
|
|
<P>
|
|
|
|
<B>Split archives.</B> <I>zip</I> version 3.0 and later can create split
|
|
archives. A
|
|
<B>split archive</B> is a standard zip archive split over multiple
|
|
files. (Note that split archives are not just archives split in to
|
|
pieces, as the offsets of entries are now based on the start of each
|
|
split. Concatenating the pieces together will invalidate these offsets,
|
|
but <I>unzip</I> can usually deal with it. <I>zip</I> will usually refuse
|
|
to process such a spliced archive unless the <B>-FF</B> fix option is
|
|
used to fix the offsets.)
|
|
<P>
|
|
|
|
One use of split archives is storing a large archive on multiple
|
|
removable media.
|
|
For a split archive with 20 split files the files are typically named (replace
|
|
ARCHIVE with the name of your archive) ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19,
|
|
ARCHIVE.zip. Note that the last file is the <B>.zip</B> file. In contrast,
|
|
<B>spanned archives</B> are the original multi-disk archive generally requiring
|
|
floppy disks and using volume labels to store disk numbers. <I>zip</I> supports
|
|
split archives but not spanned archives, though a procedure exists for converting
|
|
split archives of the right size to spanned archives. The reverse is also true,
|
|
where each file of a spanned archive can be copied in order to files with the
|
|
above names to create a split archive.
|
|
<P>
|
|
|
|
Use <B>-s</B> to set the split size and create a split archive. The size is
|
|
given as a number followed optionally by one of k (kB), m (MB), g (GB), or t (TB)
|
|
(the default is m). The <B>-sp</B> option can be used to pause <I>zip</I> between
|
|
splits to allow changing removable media, for example, but read the descriptions
|
|
and warnings for both <B>-s</B> and <B>-sp</B> below.
|
|
<P>
|
|
|
|
Though <I>zip</I> does not update split archives, <I>zip</I> provides the new
|
|
option <B>-O</B> (<B>--output-file</B> or <B>--out</B>) to allow split archives
|
|
to be updated and saved in a new archive. For example,
|
|
<DL COMPACT>
|
|
<DT id="21"><DD>
|
|
zip inarchive.zip foo.c bar.c --out outarchive.zip
|
|
</DL>
|
|
<P>
|
|
|
|
reads archive <B>inarchive.zip</B>, even if split, adds the files <B>foo.c</B> and
|
|
<B>bar.c</B>, and writes the resulting archive to <B>outarchive.zip</B>. If
|
|
<B>inarchive.zip</B> is split then <B>outarchive.zip</B> defaults to the same
|
|
split size. Be aware that if <B>outarchive.zip</B> and any split files that are
|
|
created with it already exist, these are always overwritten as needed without
|
|
warning. This may be changed in the future.
|
|
<P>
|
|
|
|
<B>Unicode.</B> Though the zip standard requires storing paths in an archive using
|
|
a specific character set, in practice zips have stored paths in archives in whatever
|
|
the local character set is. This creates problems when an archive is created or
|
|
updated on a system using one character set and then extracted on another system
|
|
using a different character set. When compiled with Unicode support enabled on
|
|
platforms that support wide characters, <I>zip</I> now stores, in addition to the
|
|
standard local path for backward compatibility, the UTF-8 translation of the path.
|
|
This provides a common universal character set for storing paths that allows these
|
|
paths to be fully extracted on other systems that support Unicode and to match as
|
|
close as possible on systems that don't.
|
|
<P>
|
|
On Win32 systems where paths are internally stored as Unicode but represented in
|
|
the local character set, it's possible that some paths will be skipped during a
|
|
local character set directory scan. <I>zip</I> with Unicode support now can read
|
|
and store these paths. Note that Win 9x systems and FAT file systems don't fully
|
|
support Unicode.
|
|
<P>
|
|
Be aware that console windows on Win32 and Unix, for example, sometimes don't
|
|
accurately show all characters due to how each operating system switches in
|
|
character sets for display. However, directory navigation tools should show the
|
|
correct paths if the needed fonts are loaded.
|
|
<P>
|
|
|
|
<B>Command line format.</B> This version of
|
|
<I>zip</I>
|
|
|
|
has updated command line processing and support for long options.
|
|
<P>
|
|
|
|
Short options take the form
|
|
<DL COMPACT>
|
|
<DT id="22"><DD>
|
|
-s[-][s[-]...][value][=value][ value]
|
|
</DL>
|
|
<P>
|
|
|
|
where s is a one or two character short option. A short option
|
|
that takes a value is last in an argument and anything after it is
|
|
taken as the value. If the option can be negated and "-" immediately
|
|
follows the option, the option is negated.
|
|
Short options can also be given as separate arguments
|
|
<DL COMPACT>
|
|
<DT id="23"><DD>
|
|
-s[-][value][=value][ value] -s[-][value][=value][ value] ...
|
|
</DL>
|
|
<P>
|
|
|
|
Short options in general take values either as part of the same
|
|
argument or as the following argument. An optional = is also supported.
|
|
So
|
|
<DL COMPACT>
|
|
<DT id="24"><DD>
|
|
-ttmmddyyyy
|
|
</DL>
|
|
<P>
|
|
|
|
and
|
|
<DL COMPACT>
|
|
<DT id="25"><DD>
|
|
-tt=mmddyyyy
|
|
</DL>
|
|
<P>
|
|
|
|
and
|
|
<DL COMPACT>
|
|
<DT id="26"><DD>
|
|
-tt mmddyyyy
|
|
</DL>
|
|
<P>
|
|
|
|
all work. The <B>-x</B> and <B>-i</B> options accept lists of values
|
|
and use a slightly different format described below. See the
|
|
<B>-x</B> and <B>-i</B> options.
|
|
<P>
|
|
|
|
Long options take the form
|
|
<DL COMPACT>
|
|
<DT id="27"><DD>
|
|
--longoption[-][=value][ value]
|
|
</DL>
|
|
<P>
|
|
|
|
where the option starts with --, has a multicharacter name, can
|
|
include a trailing dash to negate the option (if the option
|
|
supports it), and can have a value (option argument) specified by
|
|
preceding it with = (no spaces). Values can also follow the
|
|
argument. So
|
|
<DL COMPACT>
|
|
<DT id="28"><DD>
|
|
--before-date=mmddyyyy
|
|
</DL>
|
|
<P>
|
|
|
|
and
|
|
<DL COMPACT>
|
|
<DT id="29"><DD>
|
|
--before-date mmddyyyy
|
|
</DL>
|
|
<P>
|
|
|
|
both work.
|
|
<P>
|
|
Long option names can be shortened to the shortest unique
|
|
abbreviation. See the option descriptions below for which
|
|
support long options. To avoid confusion, avoid abbreviating
|
|
a negatable option with an embedded dash ("-") at the dash
|
|
if you plan to negate it (the parser would consider
|
|
a trailing dash, such as for the option <B>--some-option</B> using
|
|
<B>--some-</B> as the option, as part of the name rather
|
|
than a negating dash). This may be changed to force the last
|
|
dash in <B>--some-</B> to be negating in the future.
|
|
<A NAME="lbAF"> </A>
|
|
<H2>OPTIONS</H2>
|
|
|
|
<DL COMPACT>
|
|
<DT id="30">
|
|
<DD>
|
|
<B>-a</B>
|
|
|
|
<DT id="31">
|
|
<DD>
|
|
<B>--ascii</B>
|
|
|
|
[Systems using EBCDIC] Translate file to ASCII format.
|
|
<P>
|
|
<DT id="32">
|
|
<DD>
|
|
<B>-A</B>
|
|
|
|
<DT id="33">
|
|
<DD>
|
|
<B>--adjust-sfx</B>
|
|
|
|
Adjust self-extracting executable archive.
|
|
A self-extracting executable archive is created by prepending
|
|
the SFX stub to an existing archive. The
|
|
<B>-A</B>
|
|
|
|
option tells
|
|
<I>zip</I>
|
|
|
|
to adjust the entry offsets stored
|
|
in the archive to take into account this "preamble" data.
|
|
</DL>
|
|
<P>
|
|
|
|
Note: self-extracting archives for the Amiga are a special case.
|
|
At present, only the Amiga port of <I>zip</I> is capable of adjusting
|
|
or updating these without corrupting them. -J can be used to remove
|
|
the SFX stub if other updates need to be made.
|
|
<P>
|
|
<DL COMPACT>
|
|
<DT id="34">
|
|
<DD>
|
|
<B>-AC</B>
|
|
|
|
<DT id="35">
|
|
<DD>
|
|
<B>--archive-clear</B>
|
|
|
|
[WIN32] Once archive is created (and tested if <B>-T</B> is used,
|
|
which is recommended), clear the archive bits of files processed. WARNING:
|
|
Once the bits are cleared they are cleared. You may want to use the
|
|
<B>-sf</B> show files option to store the list of files processed in case
|
|
the archive operation must be repeated. Also consider using
|
|
the <B>-MM</B> must match option. Be sure to check out <B>-DF</B> as a
|
|
possibly better way to do incremental backups.
|
|
<P>
|
|
<DT id="36">
|
|
<DD>
|
|
<B>-AS</B>
|
|
|
|
<DT id="37">
|
|
<DD>
|
|
<B>--archive-set</B>
|
|
|
|
[WIN32] Only include files that have the archive bit set. Directories
|
|
are not stored when <B>-AS</B> is used, though by default the paths
|
|
of entries, including directories, are stored as usual and can be used
|
|
by most unzips to recreate directories.
|
|
<P>
|
|
The archive bit is set by the operating system when a file is modified
|
|
and, if used with <B>-AC</B>, <B>-AS</B> can provide an
|
|
incremental backup capability. However, other applications can
|
|
modify the archive bit and it may not be a reliable indicator of
|
|
which files have changed since the last archive operation. Alternative
|
|
ways to create incremental backups are using <B>-t</B> to use file dates,
|
|
though this won't catch old files copied to directories being archived,
|
|
and <B>-DF</B> to create a differential archive.
|
|
<P>
|
|
<DT id="38">
|
|
<DD>
|
|
<B>-B</B>
|
|
|
|
<DT id="39">
|
|
<DD>
|
|
<B>--binary</B>
|
|
|
|
[VM/CMS and MVS] force file to be read binary (default is text).
|
|
<P>
|
|
<DT id="40"><B>-B</B>n
|
|
|
|
<DD>
|
|
[TANDEM] set Edit/Enscribe formatting options with n defined as
|
|
<DL COMPACT><DT id="41"><DD>
|
|
bit 0: Don't add delimiter (Edit/Enscribe)
|
|
</DL>
|
|
|
|
<DL COMPACT><DT id="42"><DD>
|
|
bit 1: Use LF rather than CR/LF as delimiter (Edit/Enscribe)
|
|
</DL>
|
|
|
|
<DL COMPACT><DT id="43"><DD>
|
|
bit 2: Space fill record to maximum record length (Enscribe)
|
|
</DL>
|
|
|
|
<DL COMPACT><DT id="44"><DD>
|
|
bit 3: Trim trailing space (Enscribe)
|
|
</DL>
|
|
|
|
<DL COMPACT><DT id="45"><DD>
|
|
bit 8: Force 30K (Expand) large read for unstructured files
|
|
</DL>
|
|
|
|
<P>
|
|
<DT id="46">
|
|
<DD>
|
|
<B>-b </B>path
|
|
|
|
<DT id="47">
|
|
<DD>
|
|
<B>--temp-path </B>path
|
|
|
|
Use the specified
|
|
<I>path</I>
|
|
|
|
for the temporary
|
|
<I>zip</I>
|
|
|
|
archive. For example:
|
|
<DL COMPACT><DT id="48"><DD>
|
|
<DL COMPACT>
|
|
<DT id="49"><DD>
|
|
zip -b /tmp stuff *
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="50"><DD>
|
|
will put the temporary
|
|
<I>zip</I>
|
|
|
|
archive in the directory
|
|
<I>/tmp</I>,
|
|
|
|
copying over
|
|
<I>stuff.zip</I>
|
|
|
|
to the current directory when done. This option is useful when
|
|
updating an existing archive and the file system containing this
|
|
old archive does not have enough space to hold both old and new archives
|
|
at the same time. It may also be useful when streaming in some
|
|
cases to avoid the need for data descriptors. Note that using
|
|
this option may require <I>zip</I> take additional time to copy
|
|
the archive file when done to the destination file system.
|
|
<P>
|
|
<DT id="51">
|
|
<DD>
|
|
<B>-c</B>
|
|
|
|
<DT id="52">
|
|
<DD>
|
|
<B>--entry-comments</B>
|
|
|
|
Add one-line comments for each file.
|
|
File operations (adding, updating) are done first,
|
|
and the user is then prompted for a one-line comment for each file.
|
|
Enter the comment followed by return, or just return for no comment.
|
|
<P>
|
|
<DT id="53">
|
|
<DD>
|
|
<B>-C</B>
|
|
|
|
<DT id="54">
|
|
<DD>
|
|
<B>--preserve-case</B>
|
|
|
|
[VMS] Preserve case all on VMS. Negating this option
|
|
(<B>-C-</B>) downcases.
|
|
<P>
|
|
<DT id="55">
|
|
<DD>
|
|
<B>-C2</B>
|
|
|
|
<DT id="56">
|
|
<DD>
|
|
<B>--preserve-case-2</B>
|
|
|
|
[VMS] Preserve case ODS2 on VMS. Negating this option
|
|
(<B>-C2-</B>) downcases.
|
|
<P>
|
|
<DT id="57">
|
|
<DD>
|
|
<B>-C5</B>
|
|
|
|
<DT id="58">
|
|
<DD>
|
|
<B>--preserve-case-5</B>
|
|
|
|
[VMS] Preserve case ODS5 on VMS. Negating this option
|
|
(<B>-C5-</B>) downcases.
|
|
<P>
|
|
<DT id="59">
|
|
<DD>
|
|
<B>-d</B>
|
|
|
|
<DT id="60">
|
|
<DD>
|
|
<B>--delete</B>
|
|
|
|
Remove (delete) entries from a
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
For example:
|
|
<DL COMPACT><DT id="61"><DD>
|
|
<DL COMPACT>
|
|
<DT id="62"><DD>
|
|
zip -d foo foo/tom/junk foo/harry/\* \*.o
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="63"><DD>
|
|
will remove the entry
|
|
<I>foo/tom/junk</I>,
|
|
|
|
all of the files that start with
|
|
<I>foo/harry/</I>,
|
|
|
|
and all of the files that end with
|
|
<B>.o</B>
|
|
|
|
(in any path).
|
|
Note that shell pathname expansion has been inhibited with backslashes,
|
|
so that
|
|
<I>zip</I>
|
|
|
|
can see the asterisks,
|
|
enabling
|
|
<I>zip</I>
|
|
|
|
to match on the contents of the
|
|
<I>zip</I>
|
|
|
|
archive instead of the contents of the current directory.
|
|
(The backslashes are not used on MSDOS-based platforms.)
|
|
Can also use quotes to escape the asterisks as in
|
|
<DL COMPACT><DT id="64"><DD>
|
|
<DL COMPACT>
|
|
<DT id="65"><DD>
|
|
zip -d foo foo/tom/junk "foo/harry/*" "*.o"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="66"><DD>
|
|
Not escaping the asterisks on a system where the shell expands
|
|
wildcards could result in the asterisks being converted to a
|
|
list of files in the current directory and that list used to
|
|
delete entries from the archive.
|
|
<DT id="67"><DD>
|
|
Under MSDOS,
|
|
<B>-d</B>
|
|
|
|
is case sensitive when it matches names in the
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
This requires that file names be entered in upper case if they were
|
|
zipped by PKZIP on an MSDOS system. (We considered making this
|
|
case insensitive on systems where paths were case insensitive,
|
|
but it is possible the archive came from a system where case does
|
|
matter and the archive could include both <B>Bar</B> and <B>bar</B>
|
|
as separate files in the archive.) But see the new option <B>-ic</B>
|
|
to ignore case in the archive.
|
|
<P>
|
|
<DT id="68">
|
|
<DD>
|
|
<B>-db</B>
|
|
|
|
<DT id="69">
|
|
<DD>
|
|
<B>--display-bytes</B>
|
|
|
|
Display running byte counts showing the bytes zipped and the bytes to go.
|
|
<P>
|
|
<DT id="70">
|
|
<DD>
|
|
<B>-dc</B>
|
|
|
|
<DT id="71">
|
|
<DD>
|
|
<B>--display-counts</B>
|
|
|
|
Display running count of entries zipped and entries to go.
|
|
<P>
|
|
<DT id="72">
|
|
<DD>
|
|
<B>-dd</B>
|
|
|
|
<DT id="73">
|
|
<DD>
|
|
<B>--display-dots</B>
|
|
|
|
Display dots while each entry is zipped (except on ports that have their own
|
|
progress indicator). See <B>-ds</B> below for setting dot size. The default is
|
|
a dot every 10 MB of input file processed. The <B>-v</B> option
|
|
also displays dots (previously at a much higher rate than this but now <B>-v</B>
|
|
also defaults to 10 MB) and this rate is also controlled by <B>-ds</B>.
|
|
<P>
|
|
<DT id="74">
|
|
<DD>
|
|
<B>-df</B>
|
|
|
|
<DT id="75">
|
|
<DD>
|
|
<B>--datafork</B>
|
|
|
|
[MacOS] Include only data-fork of files zipped into the archive.
|
|
Good for exporting files to foreign operating-systems.
|
|
Resource-forks will be ignored at all.
|
|
<P>
|
|
<DT id="76">
|
|
<DD>
|
|
<B>-dg</B>
|
|
|
|
<DT id="77">
|
|
<DD>
|
|
<B>--display-globaldots</B>
|
|
|
|
Display progress dots for the archive instead of for each file. The command
|
|
<DL COMPACT><DT id="78"><DD>
|
|
<DL COMPACT>
|
|
<DT id="79"><DD>
|
|
<BR> zip -qdgds 10m
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="80"><DD>
|
|
will turn off most output except dots every 10 MB.
|
|
<P>
|
|
<DT id="81">
|
|
<DD>
|
|
<B>-ds </B>size
|
|
|
|
<DT id="82">
|
|
<DD>
|
|
<B>--dot-size </B>size
|
|
|
|
Set amount of input file processed for each dot displayed. See <B>-dd</B> to
|
|
enable displaying dots. Setting this option implies <B>-dd</B>. Size is
|
|
in the format nm where n is a number and m is a multiplier. Currently m can
|
|
be k (KB), m (MB), g (GB), or t (TB), so if n is 100 and m is k, size would be
|
|
100k which is 100 KB. The default is 10 MB.
|
|
<DT id="83"><DD>
|
|
The <B>-v</B> option also displays dots and now defaults to
|
|
10 MB also. This rate is also controlled by this option. A size of 0 turns dots off.
|
|
<DT id="84"><DD>
|
|
This option does not control the dots from the "Scanning files" message as
|
|
<I>zip</I> scans for input files. The dot size for that is fixed at 2 seconds
|
|
or a fixed number of entries, whichever is longer.
|
|
<P>
|
|
<DT id="85">
|
|
<DD>
|
|
<B>-du</B>
|
|
|
|
<DT id="86">
|
|
<DD>
|
|
<B>--display-usize</B>
|
|
|
|
Display the uncompressed size of each entry.
|
|
<P>
|
|
<DT id="87">
|
|
<DD>
|
|
<B>-dv</B>
|
|
|
|
<DT id="88">
|
|
<DD>
|
|
<B>--display-volume</B>
|
|
|
|
Display the volume (disk) number each entry is being read from,
|
|
if reading an existing archive, and being written to.
|
|
<P>
|
|
<DT id="89">
|
|
<DD>
|
|
<B>-D</B>
|
|
|
|
<DT id="90">
|
|
<DD>
|
|
<B>--no-dir-entries</B>
|
|
|
|
Do not create entries in the
|
|
<I>zip</I>
|
|
|
|
archive for directories. Directory entries are created by default so that
|
|
their attributes can be saved in the zip archive.
|
|
The environment variable ZIPOPT can be used to change the default options. For
|
|
example under Unix with sh:
|
|
<DL COMPACT><DT id="91"><DD>
|
|
<DL COMPACT>
|
|
<DT id="92"><DD>
|
|
ZIPOPT="-D"; export ZIPOPT
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="93"><DD>
|
|
(The variable ZIPOPT can be used for any option, including <B>-i</B> and <B>-x</B>
|
|
using a new option format detailed below, and can include several options.) The option
|
|
<B>-D</B>
|
|
|
|
is a shorthand
|
|
for
|
|
<B>-x</B>
|
|
|
|
"*/" but the latter previously could not be set as default in the ZIPOPT
|
|
environment variable as the contents of ZIPOPT gets inserted near the beginning
|
|
of the command line and the file list had to end at the end of the line.
|
|
<DT id="94"><DD>
|
|
This version of
|
|
<I>zip</I>
|
|
|
|
does allow
|
|
<B>-x</B>
|
|
|
|
and
|
|
<B>-i</B>
|
|
|
|
options in ZIPOPT if the form
|
|
<DT id="95"><DD>
|
|
|
|
<B>-x</B> file file ...<B> @</B>
|
|
|
|
<DT id="96"><DD>
|
|
is used, where the @ (an argument that is just @) terminates
|
|
the list.
|
|
<P>
|
|
<DT id="97">
|
|
<DD>
|
|
<B>-DF</B>
|
|
|
|
<DT id="98">
|
|
<DD>
|
|
<B>--difference-archive</B>
|
|
|
|
Create an archive that contains all new and changed files since
|
|
the original archive was created. For this to work, the input
|
|
file list and current directory must be the same as during the
|
|
original <I>zip</I> operation.
|
|
<DT id="99"><DD>
|
|
For example, if the existing archive was created using
|
|
<DL COMPACT><DT id="100"><DD>
|
|
<DL COMPACT>
|
|
<DT id="101"><DD>
|
|
zip -r foofull .
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="102"><DD>
|
|
from the <I>bar</I> directory, then the command
|
|
<DL COMPACT><DT id="103"><DD>
|
|
<DL COMPACT>
|
|
<DT id="104"><DD>
|
|
zip -r foofull . -DF --out foonew
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="105"><DD>
|
|
also from the <I>bar</I> directory creates the archive <I>foonew</I>
|
|
with just the files not in <I>foofull</I> and the files where
|
|
the size or file time of the files do not match those in <I>foofull</I>.
|
|
<P>
|
|
Note that the timezone environment variable TZ should be set according to
|
|
the local timezone in order for this option to work correctly. A
|
|
change in timezone since the original archive was created could
|
|
result in no times matching and all files being included.
|
|
<P>
|
|
A possible approach to backing up a directory might be to create
|
|
a normal archive of the contents of the directory as a full
|
|
backup, then use this option to create incremental backups.
|
|
<P>
|
|
<DT id="106">
|
|
<DD>
|
|
<B>-e</B>
|
|
|
|
<DT id="107">
|
|
<DD>
|
|
<B>--encrypt</B>
|
|
|
|
Encrypt the contents of the
|
|
<I>zip</I>
|
|
|
|
archive using a password which is entered on the terminal in response
|
|
to a prompt
|
|
(this will not be echoed; if standard error is not a tty,
|
|
<I>zip</I>
|
|
|
|
will exit with an error).
|
|
The password prompt is repeated to save the user from typing errors.
|
|
<P>
|
|
<DT id="108">
|
|
<DD>
|
|
<B>-E</B>
|
|
|
|
<DT id="109">
|
|
<DD>
|
|
<B>--longnames</B>
|
|
|
|
[OS/2] Use the .LONGNAME Extended Attribute (if found) as filename.
|
|
<P>
|
|
<DT id="110">
|
|
<DD>
|
|
<B>-f</B>
|
|
|
|
<DT id="111">
|
|
<DD>
|
|
<B>--freshen</B>
|
|
|
|
Replace (freshen) an existing entry in the
|
|
<I>zip</I>
|
|
|
|
archive only if it has been modified more recently than the
|
|
version already in the
|
|
<I>zip</I>
|
|
|
|
archive;
|
|
unlike the update option
|
|
(<B>-u</B>)
|
|
|
|
this will not add files that are not already in the
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
For example:
|
|
<DL COMPACT><DT id="112"><DD>
|
|
<DL COMPACT>
|
|
<DT id="113"><DD>
|
|
zip -f foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="114"><DD>
|
|
This command should be run from the same directory from which the original
|
|
<I>zip</I>
|
|
|
|
command was run, since paths stored in
|
|
<I>zip</I>
|
|
|
|
archives are always relative.
|
|
<DT id="115"><DD>
|
|
Note that the timezone environment variable TZ should be set according to
|
|
the local timezone in order for the
|
|
<B>-f</B>, <B>-u</B> and <B>-o</B>
|
|
options to work correctly.
|
|
<DT id="116"><DD>
|
|
The reasons behind this are somewhat subtle but have to do with the differences
|
|
between the Unix-format file times (always in GMT) and most of the other
|
|
operating systems (always local time) and the necessity to compare the two.
|
|
A typical TZ value is ``MET-1MEST'' (Middle European time with automatic
|
|
adjustment for ``summertime'' or Daylight Savings Time).
|
|
<DT id="117"><DD>
|
|
The format is TTThhDDD, where TTT is the time zone such as MET, hh is the
|
|
difference between GMT and local time such as -1 above, and DDD is
|
|
the time zone when daylight savings time is in effect. Leave off
|
|
the DDD if there is no daylight savings time. For the US Eastern
|
|
time zone EST5EDT.
|
|
<P>
|
|
<DT id="118">
|
|
<DD>
|
|
<B>-F</B>
|
|
|
|
<DT id="119"><B>--fix </B>
|
|
|
|
<DD>
|
|
<DT id="120"><B>-FF</B>
|
|
|
|
<DD>
|
|
<DT id="121">
|
|
<DD>
|
|
<B>--fixfix </B>
|
|
|
|
Fix the
|
|
<I>zip</I>
|
|
|
|
archive. The <B>-F</B> option can be used if some portions of the archive
|
|
are missing, but requires a reasonably intact central directory.
|
|
The input archive is scanned as usual, but <I>zip</I> will ignore
|
|
some problems. The resulting archive should be valid, but any
|
|
inconsistent entries will be left out.
|
|
<DT id="122"><DD>
|
|
When doubled as in
|
|
<B>-FF</B>,
|
|
the archive is scanned from the beginning and <I>zip</I> scans for special
|
|
signatures to identify the limits between the archive members. The
|
|
single
|
|
<B>-F</B>
|
|
|
|
is more reliable if the archive is not too much damaged, so try this
|
|
option first.
|
|
<DT id="123"><DD>
|
|
If the archive is too damaged or the end has been truncated, you
|
|
must use <B>-FF</B>. This is a change from <I>zip 2.32</I>, where
|
|
the <B>-F</B> option is able to read a truncated archive. The
|
|
<B>-F</B> option now more reliably fixes archives with minor
|
|
damage and the <B>-FF</B> option is needed to fix archives where
|
|
<B>-F</B> might have been sufficient before.
|
|
<DT id="124"><DD>
|
|
Neither option will recover archives that have been incorrectly
|
|
transferred in ascii mode instead of binary. After the repair, the
|
|
<B>-t</B>
|
|
|
|
option of
|
|
<I>unzip</I>
|
|
|
|
may show that some files have a bad CRC. Such files cannot be recovered;
|
|
you can remove them from the archive using the
|
|
<B>-d</B>
|
|
|
|
option of
|
|
<I>zip</I>.
|
|
<DT id="125"><DD>
|
|
Note that <B>-FF</B> may have trouble fixing archives that include an
|
|
embedded zip archive that was stored (without compression) in the archive
|
|
and, depending on the damage, it may find the entries in the embedded
|
|
archive rather than the archive itself. Try <B>-F</B> first as it
|
|
does not have this problem.
|
|
<DT id="126"><DD>
|
|
The format of the fix commands have changed. For example, to fix
|
|
the damaged archive <I>foo.zip</I>,
|
|
<DL COMPACT><DT id="127"><DD>
|
|
<DL COMPACT>
|
|
<DT id="128"><DD>
|
|
zip -F foo --out foofix
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="129"><DD>
|
|
tries to read the entries normally, copying good entries to the
|
|
new archive <I>foofix.zip</I>. If this doesn't work, as when the
|
|
archive is truncated, or if some entries you know are in the archive
|
|
are missed, then try
|
|
<DL COMPACT><DT id="130"><DD>
|
|
<DL COMPACT>
|
|
<DT id="131"><DD>
|
|
zip -FF foo --out foofixfix
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="132"><DD>
|
|
and compare the resulting archive to the archive created by <B>-F</B>. The
|
|
<B>-FF</B> option may create an inconsistent archive. Depending on
|
|
what is damaged, you can then use the <B>-F</B> option to fix that archive.
|
|
<DT id="133"><DD>
|
|
A split archive with missing split files can be fixed using
|
|
<B>-F</B> if you have the last split of the archive (the <B>.zip</B> file).
|
|
If this file is missing, you must use <B>-FF</B> to fix the archive,
|
|
which will prompt you for the splits you have.
|
|
<DT id="134"><DD>
|
|
Currently the fix options can't recover entries that have a bad checksum
|
|
or are otherwise damaged.
|
|
<P>
|
|
<DT id="135">
|
|
<DD>
|
|
<B>-FI</B>
|
|
|
|
<DT id="136">
|
|
<DD>
|
|
<B>--fifo</B>
|
|
|
|
[Unix] Normally <I>zip</I> skips reading any FIFOs (named pipes) encountered, as
|
|
<I>zip</I> can hang if the FIFO is not being fed. This option tells <I>zip</I> to
|
|
read the contents of any FIFO it finds.
|
|
<P>
|
|
<DT id="137">
|
|
<DD>
|
|
<B>-FS</B>
|
|
|
|
<DT id="138">
|
|
<DD>
|
|
<B>--filesync</B>
|
|
|
|
Synchronize the contents of an archive with the files on the OS.
|
|
Normally when an archive is updated, new files are added and changed
|
|
files are updated but files that no longer exist on the OS are not
|
|
deleted from the archive. This option enables a new mode that checks
|
|
entries in the archive against the file system. If the file time and
|
|
file size of the entry matches that of the OS file, the entry is
|
|
copied from the old archive instead of being read from the file system
|
|
and compressed. If the OS file has changed, the entry is read and
|
|
compressed as usual. If the entry in the archive does not match a
|
|
file on the OS, the entry is deleted. Enabling this option should
|
|
create archives that are the same as new archives, but since existing
|
|
entries are copied instead of compressed, updating an existing archive
|
|
with <B>-FS</B> can be much faster than creating a new archive. Also
|
|
consider using <B>-u</B> for updating an archive.
|
|
<DT id="139"><DD>
|
|
For this option to work, the archive should be updated from the same
|
|
directory it was created in so the relative paths match. If few files
|
|
are being copied from the old archive, it may be faster to create a
|
|
new archive instead.
|
|
<DT id="140"><DD>
|
|
Note that the timezone environment variable TZ should be set according to
|
|
the local timezone in order for this option to work correctly. A
|
|
change in timezone since the original archive was created could
|
|
result in no times matching and recompression of all files.
|
|
<DT id="141"><DD>
|
|
This option deletes files from the archive. If you need to preserve
|
|
the original archive, make a copy of the archive first or use the
|
|
<B>--out</B> option to output the updated archive to a new file.
|
|
Even though it may be slower, creating a new archive with a new archive
|
|
name is safer, avoids mismatches between archive and OS paths, and
|
|
is preferred.
|
|
<P>
|
|
<DT id="142">
|
|
<DD>
|
|
<B>-g</B>
|
|
|
|
<DT id="143">
|
|
<DD>
|
|
<B>--grow </B>
|
|
|
|
Grow (append to) the specified
|
|
<I>zip</I>
|
|
|
|
archive, instead of creating a new one. If this operation fails,
|
|
<I>zip</I>
|
|
|
|
attempts to restore the archive to its original state. If the restoration
|
|
fails, the archive might become corrupted. This option is ignored when
|
|
there's no existing archive or when at least one archive member must be
|
|
updated or deleted.
|
|
<P>
|
|
<DT id="144">
|
|
<DD>
|
|
<B>-h</B>
|
|
|
|
<DT id="145">
|
|
<DD>
|
|
<B>-?</B>
|
|
|
|
<DT id="146">
|
|
<DD>
|
|
<B>--help </B>
|
|
|
|
Display the
|
|
<I>zip</I>
|
|
|
|
help information (this also appears if
|
|
<I>zip</I>
|
|
|
|
is run with no arguments).
|
|
<P>
|
|
<DT id="147">
|
|
<DD>
|
|
<B>-h2</B>
|
|
|
|
<DT id="148">
|
|
<DD>
|
|
<B>--more-help</B>
|
|
|
|
Display extended help including more on command line format, pattern matching, and
|
|
more obscure options.
|
|
<P>
|
|
<DT id="149">
|
|
<DD>
|
|
<B>-i </B>files
|
|
|
|
<DT id="150">
|
|
<DD>
|
|
<B>--include </B>files
|
|
|
|
Include only the specified files, as in:
|
|
<DL COMPACT><DT id="151"><DD>
|
|
<DL COMPACT>
|
|
<DT id="152"><DD>
|
|
zip -r foo . -i \*.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="153"><DD>
|
|
which will include only the files that end in
|
|
<I></I>.c
|
|
|
|
in the current directory and its subdirectories. (Note for PKZIP
|
|
users: the equivalent command is
|
|
<DL COMPACT><DT id="154"><DD>
|
|
<DL COMPACT>
|
|
<DT id="155"><DD>
|
|
pkzip -rP foo *.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="156"><DD>
|
|
PKZIP does not allow recursion in directories other than the current one.)
|
|
The backslash avoids the shell filename substitution, so that the
|
|
name matching is performed by
|
|
<I>zip</I>
|
|
|
|
at all directory levels.
|
|
[This is for Unix and other systems where \ escapes the
|
|
next character. For other systems where the shell does not
|
|
process * do not use \ and the above is
|
|
<DL COMPACT><DT id="157"><DD>
|
|
<DL COMPACT>
|
|
<DT id="158"><DD>
|
|
zip -r foo . -i *.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="159"><DD>
|
|
Examples are for Unix unless otherwise specified.] So to include dir,
|
|
a directory directly under the current directory, use
|
|
<DL COMPACT><DT id="160"><DD>
|
|
<DL COMPACT>
|
|
<DT id="161"><DD>
|
|
zip -r foo . -i dir/\*
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="162"><DD>
|
|
or
|
|
<DL COMPACT><DT id="163"><DD>
|
|
<DL COMPACT>
|
|
<DT id="164"><DD>
|
|
zip -r foo . -i "dir/*"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="165"><DD>
|
|
to match paths such as dir/a and dir/b/file.c [on
|
|
ports without wildcard expansion in the shell such as MSDOS and Windows
|
|
<DL COMPACT><DT id="166"><DD>
|
|
<DL COMPACT>
|
|
<DT id="167"><DD>
|
|
zip -r foo . -i dir/*
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="168"><DD>
|
|
is used.] Note that currently the trailing / is needed
|
|
for directories (as in
|
|
<DL COMPACT><DT id="169"><DD>
|
|
<DL COMPACT>
|
|
<DT id="170"><DD>
|
|
zip -r foo . -i dir/
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="171"><DD>
|
|
to include directory dir).
|
|
<DT id="172"><DD>
|
|
The long option form of the first example is
|
|
<DL COMPACT><DT id="173"><DD>
|
|
<DL COMPACT>
|
|
<DT id="174"><DD>
|
|
zip -r foo . --include \*.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="175"><DD>
|
|
and does the same thing as the short option form.
|
|
<DT id="176"><DD>
|
|
Though the command syntax used to require <B>-i</B> at
|
|
the end of the command line, this version actually
|
|
allows <B>-i</B> (or <B>--include</B>) anywhere. The
|
|
list of files terminates at the next argument starting
|
|
with <B>-</B>, the end of the command line, or the list
|
|
terminator <B>@</B> (an argument that is just @). So
|
|
the above can be given as
|
|
<DL COMPACT><DT id="177"><DD>
|
|
<DL COMPACT>
|
|
<DT id="178"><DD>
|
|
zip -i \*.c @ -r foo .
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="179"><DD>
|
|
for example. There must be a space between
|
|
the option and the first file of a list. For just
|
|
one file you can use the single value form
|
|
<DL COMPACT><DT id="180"><DD>
|
|
<DL COMPACT>
|
|
<DT id="181"><DD>
|
|
zip -i\*.c -r foo .
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="182"><DD>
|
|
(no space between option and value) or
|
|
<DL COMPACT><DT id="183"><DD>
|
|
<DL COMPACT>
|
|
<DT id="184"><DD>
|
|
zip --include=\*.c -r foo .
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="185"><DD>
|
|
as additional examples. The single value forms are
|
|
not recommended because they can be confusing and,
|
|
in particular, the <B>-ifile</B> format can cause
|
|
problems if the first letter of <B>file</B> combines with
|
|
<B>i</B> to form a two-letter option starting with
|
|
<B>i</B>. Use <B>-sc</B> to see how your command line
|
|
will be parsed.
|
|
<DT id="186"><DD>
|
|
Also possible:
|
|
<DL COMPACT><DT id="187"><DD>
|
|
<DL COMPACT>
|
|
<DT id="188"><DD>
|
|
zip -r foo . <A HREF="mailto:-i@include.lst">-i@include.lst</A>
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="189"><DD>
|
|
which will only include the files in the current directory and its
|
|
subdirectories that match the patterns in the file include.lst.
|
|
<DT id="190"><DD>
|
|
Files to <B>-i</B> and <B>-x</B> are patterns matching internal archive paths. See
|
|
<B>-R</B> for more on patterns.
|
|
<P>
|
|
<DT id="191">
|
|
<DD>
|
|
<B>-I</B>
|
|
|
|
<DT id="192">
|
|
<DD>
|
|
<B>--no-image</B>
|
|
|
|
[Acorn RISC OS] Don't scan through Image files. When used, <I>zip</I> will not
|
|
consider Image files (eg. DOS partitions or Spark archives when SparkFS
|
|
is loaded) as directories but will store them as single files.
|
|
<P>
|
|
For example, if you have SparkFS loaded, zipping a Spark archive will result
|
|
in a zipfile containing a directory (and its content) while using the 'I'
|
|
option will result in a zipfile containing a Spark archive. Obviously this
|
|
second case will also be obtained (without the 'I' option) if SparkFS isn't
|
|
loaded.
|
|
<P>
|
|
<DT id="193">
|
|
<DD>
|
|
<B>-ic</B>
|
|
|
|
<DT id="194">
|
|
<DD>
|
|
<B>--ignore-case</B>
|
|
|
|
[VMS, WIN32] Ignore case when matching archive entries. This option is
|
|
only available on systems where the case of files is ignored. On systems
|
|
with case-insensitive file systems, case is normally ignored when matching files
|
|
on the file system but is not ignored for -f (freshen), -d (delete), -U (copy),
|
|
and similar modes when matching against archive entries (currently -f
|
|
ignores case on VMS) because archive entries can be from systems where
|
|
case does matter and names that are the same except for case can exist
|
|
in an archive. The <B>-ic</B> option makes all matching case insensitive.
|
|
This can result in multiple archive entries matching a command line pattern.
|
|
<P>
|
|
<DT id="195">
|
|
<DD>
|
|
<B>-j</B>
|
|
|
|
<DT id="196">
|
|
<DD>
|
|
<B>--junk-paths</B>
|
|
|
|
Store just the name of a saved file (junk the path), and do not store
|
|
directory names. By default,
|
|
<I>zip</I>
|
|
|
|
will store the full path (relative to the current directory).
|
|
<P>
|
|
<DT id="197">
|
|
<DD>
|
|
<B>-jj</B>
|
|
|
|
<DT id="198">
|
|
<DD>
|
|
<B>--absolute-path</B>
|
|
|
|
[MacOS] record Fullpath (+ Volname). The complete path including
|
|
volume will be stored. By default the relative path will be stored.
|
|
<P>
|
|
<DT id="199">
|
|
<DD>
|
|
<B>-J</B>
|
|
|
|
<DT id="200">
|
|
<DD>
|
|
<B>--junk-sfx</B>
|
|
|
|
Strip any prepended data (e.g. a SFX stub) from the archive.
|
|
<DT id="201">
|
|
<DD>
|
|
<B>-k</B>
|
|
|
|
<DT id="202">
|
|
<DD>
|
|
<B>--DOS-names</B>
|
|
|
|
Attempt to convert the names and paths to conform to MSDOS,
|
|
store only the MSDOS attribute (just the user write attribute from Unix),
|
|
and mark the entry as made under MSDOS (even though it was not);
|
|
for compatibility with PKUNZIP under MSDOS which cannot handle certain
|
|
names such as those with two dots.
|
|
<DT id="203">
|
|
<DD>
|
|
<B>-l</B>
|
|
|
|
<DT id="204">
|
|
<DD>
|
|
<B>--to-crlf</B>
|
|
|
|
Translate the Unix end-of-line character LF into the
|
|
MSDOS convention CR LF. This option should not be used on binary files.
|
|
This option can be used on Unix if the zip file is intended for PKUNZIP
|
|
under MSDOS. If the input files already contain CR LF, this option adds
|
|
an extra CR. This is to ensure that
|
|
<B>unzip -a</B>
|
|
on Unix will get back an exact copy of the original file,
|
|
to undo the effect of
|
|
<B>zip -l</B>. See <B>-ll</B> for how binary files are handled.
|
|
<DT id="205">
|
|
<DD>
|
|
<B>-la</B>
|
|
|
|
<DT id="206">
|
|
<DD>
|
|
<B>--log-append</B>
|
|
|
|
Append to existing logfile. Default is to overwrite.
|
|
<DT id="207">
|
|
<DD>
|
|
<B>-lf </B>logfilepath
|
|
|
|
<DT id="208">
|
|
<DD>
|
|
<B>--logfile-path </B>logfilepath
|
|
|
|
Open a logfile at the given path. By default any existing file at that location
|
|
is overwritten, but the <B>-la</B> option will result in an existing file being
|
|
opened and the new log information appended to any existing information.
|
|
Only warnings and errors are written to the log unless the <B>-li</B> option is
|
|
also given, then all information messages are also written to the log.
|
|
<DT id="209">
|
|
<DD>
|
|
<B>-li</B>
|
|
|
|
<DT id="210">
|
|
<DD>
|
|
<B>--log-info</B>
|
|
|
|
Include information messages, such as file names being zipped, in the log.
|
|
The default is to only include the command line, any warnings and errors, and
|
|
the final status.
|
|
<DT id="211">
|
|
<DD>
|
|
<B>-ll</B>
|
|
|
|
<DT id="212">
|
|
<DD>
|
|
<B>--from-crlf</B>
|
|
|
|
Translate the MSDOS end-of-line CR LF into Unix LF.
|
|
This option should not be used on binary files.
|
|
This option can be used on MSDOS if the zip file is intended for unzip
|
|
under Unix. If the file is converted and the file is later determined
|
|
to be binary a warning is issued and the file is probably
|
|
corrupted. In this release if <B>-ll</B> detects binary in the first buffer
|
|
read from a file, <I>zip</I> now issues a warning and skips line end
|
|
conversion on the file. This check seems to catch all binary files
|
|
tested, but the original check remains and if a converted file is
|
|
later determined to be binary that warning is still issued. A new algorithm
|
|
is now being used for binary detection that should allow line end conversion
|
|
of text files in <B>UTF-8</B> and similar encodings.
|
|
<DT id="213">
|
|
<DD>
|
|
<B>-L</B>
|
|
|
|
<DT id="214">
|
|
<DD>
|
|
<B>--license</B>
|
|
|
|
Display the
|
|
<I>zip</I>
|
|
|
|
license.
|
|
<DT id="215">
|
|
<DD>
|
|
<B>-m</B>
|
|
|
|
<DT id="216">
|
|
<DD>
|
|
<B>--move </B>
|
|
|
|
Move the specified files into the
|
|
<I>zip</I>
|
|
|
|
archive; actually,
|
|
this deletes the target directories/files after making the specified
|
|
<I>zip</I>
|
|
|
|
archive. If a directory becomes empty after removal of the files, the
|
|
directory is also removed. No deletions are done until
|
|
<I>zip</I>
|
|
|
|
has created the archive without error.
|
|
This is useful for conserving disk space,
|
|
but is potentially dangerous so it is recommended to use it in
|
|
combination with
|
|
<B>-T</B>
|
|
|
|
to test the archive before removing all input files.
|
|
<DT id="217">
|
|
<DD>
|
|
<B>-MM</B>
|
|
|
|
<DT id="218">
|
|
<DD>
|
|
<B>--must-match</B>
|
|
|
|
All input patterns must match at least one file and all input files
|
|
found must be readable. Normally when an input pattern does not match
|
|
a file the "name not matched" warning is issued and when an input file
|
|
has been found but later is missing or not readable a missing or not
|
|
readable warning is issued. In either case
|
|
<I>zip</I>
|
|
|
|
continues creating the archive, with missing or unreadable new files
|
|
being skipped and files already in the archive remaining unchanged.
|
|
After the archive is created, if any files were not readable
|
|
<I>zip</I>
|
|
|
|
returns the OPEN error code (18 on most systems) instead of the normal
|
|
success return (0 on most systems). With <B>-MM</B> set,
|
|
<I>zip</I>
|
|
|
|
exits as soon as an input pattern is not matched (whenever the
|
|
"name not matched" warning would be issued) or when an input file is
|
|
not readable. In either case <I>zip</I> exits with an OPEN error
|
|
and no archive is created.
|
|
<DT id="219"><DD>
|
|
This option is useful when a known list of files is to be zipped so
|
|
any missing or unreadable files will result in an error. It is less
|
|
useful when used with wildcards, but <I>zip</I> will still exit with an
|
|
error if any input pattern doesn't match at least one file and if any
|
|
matched files are unreadable. If you want to create the archive
|
|
anyway and only need to know if files were skipped, don't use
|
|
<B>-MM</B>
|
|
|
|
and just check the return code. Also <B>-lf</B> could be useful.
|
|
<DT id="220">
|
|
<DD>
|
|
<B>-n </B>suffixes
|
|
|
|
<DT id="221">
|
|
<DD>
|
|
<B>--suffixes </B>suffixes
|
|
|
|
Do not attempt to compress files named with the given
|
|
<B>suffixes</B>.
|
|
Such files are simply stored (0% compression) in the output zip file,
|
|
so that
|
|
<I>zip</I>
|
|
|
|
doesn't waste its time trying to compress them.
|
|
The suffixes are separated by
|
|
either colons or semicolons. For example:
|
|
<DL COMPACT><DT id="222"><DD>
|
|
<DL COMPACT>
|
|
<DT id="223"><DD>
|
|
zip -rn .Z:.zip:.tiff:.gif:.snd foo foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="224"><DD>
|
|
will copy everything from
|
|
<I>foo</I>
|
|
|
|
into
|
|
<I>foo.zip</I>,
|
|
|
|
but will store any files that end in
|
|
<I>.Z</I>,
|
|
|
|
<I>.zip</I>,
|
|
|
|
<I>.tiff</I>,
|
|
|
|
<I>.gif</I>,
|
|
|
|
or
|
|
<I>.snd</I>
|
|
|
|
without trying to compress them
|
|
(image and sound files often have their own specialized compression methods).
|
|
By default,
|
|
<I>zip</I>
|
|
|
|
does not compress files with extensions in the list
|
|
<I>.Z:.zip:.zoo:.arc:.lzh:.arj.</I>
|
|
|
|
Such files are stored directly in the output archive.
|
|
The environment variable ZIPOPT can be used to change the default options. For
|
|
example under Unix with csh:
|
|
<DL COMPACT><DT id="225"><DD>
|
|
<DL COMPACT>
|
|
<DT id="226"><DD>
|
|
setenv ZIPOPT "-n .gif:.zip"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="227"><DD>
|
|
To attempt compression on all files, use:
|
|
<DL COMPACT><DT id="228"><DD>
|
|
<DL COMPACT>
|
|
<DT id="229"><DD>
|
|
zip -n : foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="230"><DD>
|
|
The maximum compression option
|
|
<B>-9</B>
|
|
|
|
also attempts compression on all files regardless of extension.
|
|
<DT id="231"><DD>
|
|
On Acorn RISC OS systems the suffixes are actually filetypes (3 hex digit
|
|
format). By default, <I>zip</I> does not compress files with filetypes in the list
|
|
DDC:D96:68E (i.e. Archives, CFS files and PackDir files).
|
|
<DT id="232">
|
|
<DD>
|
|
<B>-nw</B>
|
|
|
|
<DT id="233">
|
|
<DD>
|
|
<B>--no-wild</B>
|
|
|
|
Do not perform internal wildcard processing (shell processing of wildcards is still done
|
|
by the shell unless the arguments are escaped). Useful if a list of paths is being
|
|
read and no wildcard substitution is desired.
|
|
<DT id="234">
|
|
<DD>
|
|
<B>-N</B>
|
|
|
|
<DT id="235">
|
|
<DD>
|
|
<B>--notes</B>
|
|
|
|
[Amiga, MacOS] Save Amiga or MacOS filenotes as zipfile comments. They can be
|
|
restored by using the -N option of <I>unzip</I>. If -c is used also, you are
|
|
prompted for comments only for those files that do not have filenotes.
|
|
<DT id="236">
|
|
<DD>
|
|
<B>-o</B>
|
|
|
|
<DT id="237">
|
|
<DD>
|
|
<B>--latest-time</B>
|
|
|
|
Set the "last modified" time of the
|
|
<I>zip</I>
|
|
|
|
archive to the latest (oldest) "last modified" time
|
|
found among the entries in the
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
This can be used without any other operations, if desired.
|
|
For example:
|
|
<DT id="238"><DD>
|
|
zip -o foo
|
|
<DT id="239"><DD>
|
|
will change the last modified time of
|
|
<B>foo.zip</B>
|
|
to the latest time of the entries in
|
|
<B>foo.zip</B>.
|
|
|
|
<DT id="240">
|
|
<DD>
|
|
<B>-O </B>output-file
|
|
|
|
<DT id="241">
|
|
<DD>
|
|
<B>--output-file </B>output-file
|
|
|
|
Process the archive changes as usual, but instead of updating the existing archive,
|
|
output the new archive to output-file. Useful for updating an archive
|
|
without changing the existing archive and the input archive must be a different file
|
|
than the output archive.
|
|
<P>
|
|
This option can be used to create updated split archives.
|
|
It can also be used with <B>-U</B> to copy entries from an existing archive to a new
|
|
archive. See the <B>EXAMPLES</B> section below.
|
|
<P>
|
|
Another use is converting <I>zip</I> files from one split size to another. For instance,
|
|
to convert an archive with 700 MB CD splits to one with 2 GB DVD splits, can use:
|
|
<DL COMPACT><DT id="242"><DD>
|
|
<DL COMPACT>
|
|
<DT id="243"><DD>
|
|
zip -s 2g cd-split.zip --out dvd-split.zip
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="244"><DD>
|
|
which uses copy mode. See <B>-U</B> below. Also:
|
|
<DL COMPACT><DT id="245"><DD>
|
|
<DL COMPACT>
|
|
<DT id="246"><DD>
|
|
zip -s 0 split.zip --out unsplit.zip
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="247"><DD>
|
|
will convert a split archive to a single-file archive.
|
|
<P>
|
|
Copy mode will convert stream entries (using data descriptors and which
|
|
should be compatible with most unzips) to normal entries (which should
|
|
be compatible
|
|
with all unzips), except if standard encryption was used. For archives
|
|
with encrypted entries, <I>zipcloak</I> will decrypt the entries and convert
|
|
them to normal entries.
|
|
<DT id="248">
|
|
<DD>
|
|
<B>-p</B>
|
|
|
|
<DT id="249">
|
|
<DD>
|
|
<B>--paths</B>
|
|
|
|
Include relative file paths as part of the names of files stored in the archive.
|
|
This is the default. The <B>-j</B> option junks the paths and just stores the
|
|
names of the files.
|
|
<DT id="250">
|
|
<DD>
|
|
<B>-P </B>password
|
|
|
|
<DT id="251">
|
|
<DD>
|
|
<B>--password </B>password
|
|
|
|
Use <I>password</I> to encrypt zipfile entries (if any). <B>THIS IS
|
|
INSECURE!</B> Many multi-user operating systems provide ways for any user to
|
|
see the current command line of any other user; even on stand-alone systems
|
|
there is always the threat of over-the-shoulder peeking. Storing the plaintext
|
|
password as part of a command line in an automated script is even worse.
|
|
Whenever possible, use the non-echoing, interactive prompt to enter passwords.
|
|
(And where security is truly important, use strong encryption such as Pretty
|
|
Good Privacy instead of the relatively weak standard encryption provided by
|
|
zipfile utilities.)
|
|
<DT id="252">
|
|
<DD>
|
|
<B>-q</B>
|
|
|
|
<DT id="253">
|
|
<DD>
|
|
<B>--quiet</B>
|
|
|
|
Quiet mode;
|
|
eliminate informational messages and comment prompts.
|
|
(Useful, for example, in shell scripts and background tasks).
|
|
<DT id="254">
|
|
<DD>
|
|
<B>-Q</B>n
|
|
|
|
<DT id="255">
|
|
<DD>
|
|
<B>--Q-flag </B>n
|
|
|
|
[QDOS] store information about the file in the file header with n defined as
|
|
<DL COMPACT><DT id="256"><DD>
|
|
bit 0: Don't add headers for any file
|
|
</DL>
|
|
|
|
<DL COMPACT><DT id="257"><DD>
|
|
bit 1: Add headers for all files
|
|
</DL>
|
|
|
|
<DL COMPACT><DT id="258"><DD>
|
|
bit 2: Don't wait for interactive key press on exit
|
|
</DL>
|
|
|
|
<DT id="259">
|
|
<DD>
|
|
<B>-r</B>
|
|
|
|
<DT id="260">
|
|
<DD>
|
|
<B>--recurse-paths</B>
|
|
|
|
Travel the directory structure recursively;
|
|
for example:
|
|
<DL COMPACT><DT id="261"><DD>
|
|
<DL COMPACT>
|
|
<DT id="262"><DD>
|
|
zip -r foo.zip foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="263"><DD>
|
|
or more concisely
|
|
<DL COMPACT><DT id="264"><DD>
|
|
<DL COMPACT>
|
|
<DT id="265"><DD>
|
|
zip -r foo foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="266"><DD>
|
|
In this case, all the files and directories in
|
|
<B>foo</B>
|
|
|
|
are saved in a
|
|
<I>zip</I>
|
|
|
|
archive named <B>foo.zip</B>,
|
|
including files with names starting with <B>"."</B>,
|
|
since the recursion does not use the shell's file-name substitution mechanism.
|
|
If you wish to include only a specific subset of the files in directory
|
|
<B>foo</B>
|
|
and its subdirectories, use the
|
|
<B>-i</B>
|
|
option to specify the pattern of files to be included.
|
|
You should not use
|
|
<B>-r</B>
|
|
with the name <B>".*"</B>,
|
|
since that matches <B>".."</B>
|
|
which will attempt to zip up the parent directory
|
|
(probably not what was intended).
|
|
<DT id="267"><DD>
|
|
Multiple source directories are allowed as in
|
|
<DL COMPACT><DT id="268"><DD>
|
|
<DL COMPACT>
|
|
<DT id="269"><DD>
|
|
zip -r foo foo1 foo2
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="270"><DD>
|
|
which first zips up <B>foo1</B> and then <B>foo2</B>, going down each directory.
|
|
<DT id="271"><DD>
|
|
Note that while wildcards to <B>-r</B> are typically resolved while recursing down
|
|
directories in the file system, any <B>-R</B>, <B>-x</B>, and <B>-i</B> wildcards
|
|
are applied to internal archive pathnames once the directories are scanned.
|
|
To have wildcards apply to files in subdirectories when recursing on
|
|
Unix and similar systems where the shell does wildcard substitution, either
|
|
escape all wildcards or put all arguments with wildcards in quotes. This lets
|
|
<I>zip</I> see the wildcards and match files in subdirectories using them as
|
|
it recurses.
|
|
<DT id="272">
|
|
<DD>
|
|
<B>-R</B>
|
|
|
|
<DT id="273">
|
|
<DD>
|
|
<B>--recurse-patterns</B>
|
|
|
|
Travel the directory structure recursively starting at the
|
|
current directory;
|
|
for example:
|
|
<DL COMPACT><DT id="274"><DD>
|
|
<DL COMPACT>
|
|
<DT id="275"><DD>
|
|
zip -R foo "*.c"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="276"><DD>
|
|
In this case, all the files matching <B>*.c</B> in the tree starting at the
|
|
current directory are stored into a
|
|
<I>zip</I>
|
|
|
|
archive named
|
|
<B>foo.zip</B>.
|
|
Note that <B>*.c</B> will match <B>file.c</B>, <B>a/file.c</B>
|
|
and <B>a/b/.c</B>. More than one pattern can be listed as separate
|
|
arguments.
|
|
Note for PKZIP users: the equivalent command is
|
|
<DL COMPACT><DT id="277"><DD>
|
|
<DL COMPACT>
|
|
<DT id="278"><DD>
|
|
pkzip -rP foo *.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="279"><DD>
|
|
Patterns are relative file paths as they appear in the archive, or will after
|
|
zipping, and can have optional wildcards in them. For example, given
|
|
the current directory is <B>foo</B> and under it are directories <B>foo1</B> and <B>foo2</B>
|
|
and in <B>foo1</B> is the file <B>bar.c</B>,
|
|
<DL COMPACT><DT id="280"><DD>
|
|
<DL COMPACT>
|
|
<DT id="281"><DD>
|
|
zip -R foo/*
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="282"><DD>
|
|
will zip up <B>foo</B>, <B>foo/foo1</B>, <B>foo/foo1/bar.c</B>, and <B>foo/foo2</B>.
|
|
<DL COMPACT><DT id="283"><DD>
|
|
<DL COMPACT>
|
|
<DT id="284"><DD>
|
|
zip -R */bar.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="285"><DD>
|
|
will zip up <B>foo/foo1/bar.c</B>. See the note for <B>-r</B> on escaping wildcards.
|
|
<P>
|
|
<DT id="286">
|
|
<DD>
|
|
<B>-RE</B>
|
|
|
|
<DT id="287">
|
|
<DD>
|
|
<B>--regex</B>
|
|
|
|
[WIN32] Before <I>zip</I> <I>3.0</I>, regular expression list matching was
|
|
enabled by default on Windows platforms. Because of confusion resulting
|
|
from the need to escape "[" and "]" in names, it is now off by default for
|
|
Windows so "[" and "]" are just normal characters in names. This option
|
|
enables [] matching again.
|
|
<P>
|
|
<DT id="288">
|
|
<DD>
|
|
<B>-s </B>splitsize
|
|
|
|
<DT id="289">
|
|
<DD>
|
|
<B>--split-size </B>splitsize
|
|
|
|
Enable creating a split archive and set the split size. A split archive is an archive
|
|
that could be split over many files. As the archive is created, if the size of the
|
|
archive reaches the specified split size, that split is closed and the next split
|
|
opened. In general all splits but the last will be the split size and the last
|
|
will be whatever is left. If the entire archive is smaller than the split size a
|
|
single-file archive is created.
|
|
<P>
|
|
Split archives are stored in numbered files. For example, if the output
|
|
archive is named <B>archive</B> and three splits are required, the resulting
|
|
archive will be in the three files <B>archive.z01</B>, <B>archive.z02</B>, and
|
|
<B>archive.zip</B>. Do not change the numbering of these files or the archive
|
|
will not be readable as these are used to determine the order the splits are read.
|
|
<P>
|
|
Split size is a number optionally followed by a multiplier. Currently the
|
|
number must be an integer. The multiplier can currently be one of
|
|
<B>k</B> (kilobytes), <B>m</B> (megabytes), <B>g</B> (gigabytes), or <B>t</B>
|
|
(terabytes). As 64k is the minimum split size, numbers without multipliers
|
|
default to megabytes. For example, to create a split archive called <B>foo</B>
|
|
with the contents of the <B>bar</B> directory with splits of 670 MB that might
|
|
be useful for burning on CDs, the command:
|
|
<DL COMPACT><DT id="290"><DD>
|
|
<DL COMPACT>
|
|
<DT id="291"><DD>
|
|
zip -s 670m -r foo bar
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="292"><DD>
|
|
could be used.
|
|
<P>
|
|
Currently the old splits of a split archive are not excluded from a new
|
|
archive, but they can be specifically excluded. If possible, keep
|
|
the input and output archives out of the path being zipped when creating
|
|
split archives.
|
|
<P>
|
|
Using <B>-s</B> without <B>-sp</B> as above creates all the splits where
|
|
<B>foo</B> is being written, in this case the current directory. This split
|
|
mode updates the splits as the archive is being created, requiring all
|
|
splits to remain writable, but creates split archives that are readable by
|
|
any unzip that supports split archives. See <B>-sp</B> below for enabling
|
|
split pause mode which allows splits to be written directly to removable
|
|
media.
|
|
<P>
|
|
The option <B>-sv</B> can be used to enable verbose splitting and provide details of
|
|
how the splitting is being done. The <B>-sb</B> option can be used to ring the bell
|
|
when <I>zip</I> pauses for the next split destination.
|
|
<P>
|
|
Split archives cannot be updated, but see the <B>-O</B> (<B>--out</B>) option for
|
|
how a split archive can be updated as it is copied to a new archive.
|
|
A split archive can also be converted into a single-file archive using a
|
|
split size of 0 or negating the <B>-s</B> option:
|
|
<DL COMPACT><DT id="293"><DD>
|
|
<DL COMPACT>
|
|
<DT id="294"><DD>
|
|
zip -s 0 split.zip --out single.zip
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="295"><DD>
|
|
Also see <B>-U</B> (<B>--copy</B>) for more on using copy mode.
|
|
<DT id="296">
|
|
<DD>
|
|
<B>-sb</B>
|
|
|
|
<DT id="297">
|
|
<DD>
|
|
<B>--split-bell</B>
|
|
|
|
If splitting and using split pause mode, ring the bell when <I>zip</I> pauses
|
|
for each split destination.
|
|
<DT id="298">
|
|
<DD>
|
|
<B>-sc</B>
|
|
|
|
<DT id="299">
|
|
<DD>
|
|
<B>--show-command</B>
|
|
|
|
Show the command line starting <I>zip</I> as processed and exit. The new command parser
|
|
permutes the arguments, putting all options and any values associated with them
|
|
before any non-option arguments. This allows an option to appear anywhere in the
|
|
command line as long as any values that go with the option go with it. This option
|
|
displays the command line as <I>zip</I> sees it, including any arguments from
|
|
the environment such as from the <B>ZIPOPT</B> variable. Where allowed, options later
|
|
in the command line can override options earlier in the command line.
|
|
<DT id="300">
|
|
<DD>
|
|
<B>-sf</B>
|
|
|
|
<DT id="301">
|
|
<DD>
|
|
<B>--show-files</B>
|
|
|
|
Show the files that would be operated on, then exit. For instance, if creating
|
|
a new archive, this will list the files that would be added. If the option is
|
|
negated, <B>-sf-</B>, output only to an open log file. Screen display is
|
|
not recommended for large lists.
|
|
<DT id="302">
|
|
<DD>
|
|
<B>-so</B>
|
|
|
|
<DT id="303">
|
|
<DD>
|
|
<B>--show-options</B>
|
|
|
|
Show all available options supported by <I>zip</I> as compiled on the current system.
|
|
As this command reads the option table, it should include all options. Each line
|
|
includes the short option (if defined), the long option (if defined), the format
|
|
of any value that goes with the option, if the option can be negated, and a
|
|
small description. The value format can be no value, required value, optional
|
|
value, single character value, number value, or a list of values. The output of
|
|
this option is not intended to show how to use any option but only
|
|
show what options are available.
|
|
<DT id="304">
|
|
<DD>
|
|
<B>-sp</B>
|
|
|
|
<DT id="305">
|
|
<DD>
|
|
<B>--split-pause</B>
|
|
|
|
If splitting is enabled with <B>-s</B>, enable split pause mode. This
|
|
creates split archives as <B>-s</B> does, but stream writing is used so each
|
|
split can be closed as soon as it is written and <I>zip</I> will pause between each
|
|
split to allow changing split destination or media.
|
|
<P>
|
|
Though this split mode allows writing splits directly to removable media, it
|
|
uses stream archive format that may not be readable by some unzips. Before
|
|
relying on splits created with <B>-sp</B>, test a split archive with the unzip
|
|
you will be using.
|
|
<P>
|
|
To convert a stream split archive (created with <B>-sp</B>) to a standard archive
|
|
see the <B>--out</B> option.
|
|
<DT id="306">
|
|
<DD>
|
|
<B>-su</B>
|
|
|
|
<DT id="307">
|
|
<DD>
|
|
<B>--show-unicode</B>
|
|
|
|
As <B>-sf</B>, but also show Unicode version of the path if exists.
|
|
<DT id="308">
|
|
<DD>
|
|
<B>-sU</B>
|
|
|
|
<DT id="309">
|
|
<DD>
|
|
<B>--show-just-unicode</B>
|
|
|
|
As <B>-sf</B>, but only show Unicode version of the path if exists, otherwise show
|
|
the standard version of the path.
|
|
<DT id="310">
|
|
<DD>
|
|
<B>-sv</B>
|
|
|
|
<DT id="311">
|
|
<DD>
|
|
<B>--split-verbose</B>
|
|
|
|
Enable various verbose messages while splitting, showing how the splitting is being
|
|
done.
|
|
<DT id="312">
|
|
<DD>
|
|
<B>-S</B>
|
|
|
|
<DT id="313">
|
|
<DD>
|
|
<B>--system-hidden</B>
|
|
|
|
[MSDOS, OS/2, WIN32 and ATARI] Include system and hidden files.
|
|
<DL COMPACT><DT id="314"><DD>
|
|
[MacOS] Includes finder invisible files, which are ignored otherwise.
|
|
</DL>
|
|
|
|
<DT id="315">
|
|
<DD>
|
|
<B>-t </B>mmddyyyy
|
|
|
|
<DT id="316">
|
|
<DD>
|
|
<B>--from-date </B>mmddyyyy
|
|
|
|
Do not operate on files modified prior to the specified date,
|
|
where
|
|
<B>mm</B>
|
|
|
|
is the month (00-12),
|
|
<B>dd</B>
|
|
|
|
is the day of the month (01-31),
|
|
and
|
|
<B>yyyy</B>
|
|
|
|
is the year.
|
|
The
|
|
<I>ISO 8601</I>
|
|
|
|
date format
|
|
<B>yyyy-mm-dd</B>
|
|
|
|
is also accepted.
|
|
For example:
|
|
<DL COMPACT><DT id="317"><DD>
|
|
<DL COMPACT>
|
|
<DT id="318"><DD>
|
|
zip -rt 12071991 infamy foo
|
|
<P>
|
|
zip -rt 1991-12-07 infamy foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="319"><DD>
|
|
will add all the files in
|
|
<B>foo</B>
|
|
|
|
and its subdirectories that were last modified on or after 7 December 1991,
|
|
to the
|
|
<I>zip</I>
|
|
|
|
archive
|
|
<B>infamy.zip</B>.
|
|
|
|
<DT id="320">
|
|
<DD>
|
|
<B>-tt </B>mmddyyyy
|
|
|
|
<DT id="321">
|
|
<DD>
|
|
<B>--before-date </B>mmddyyyy
|
|
|
|
Do not operate on files modified after or at the specified date,
|
|
where
|
|
<B>mm</B>
|
|
|
|
is the month (00-12),
|
|
<B>dd</B>
|
|
|
|
is the day of the month (01-31),
|
|
and
|
|
<B>yyyy</B>
|
|
|
|
is the year.
|
|
The
|
|
<I>ISO 8601</I>
|
|
|
|
date format
|
|
<B>yyyy-mm-dd</B>
|
|
|
|
is also accepted.
|
|
For example:
|
|
<DL COMPACT><DT id="322"><DD>
|
|
<DL COMPACT>
|
|
<DT id="323"><DD>
|
|
zip -rtt 11301995 infamy foo
|
|
<P>
|
|
zip -rtt 1995-11-30 infamy foo
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="324"><DD>
|
|
will add all the files in
|
|
<B>foo</B>
|
|
|
|
and its subdirectories that were last modified before 30 November 1995,
|
|
to the
|
|
<I>zip</I>
|
|
|
|
archive
|
|
<B>infamy.zip</B>.
|
|
|
|
<DT id="325">
|
|
<DD>
|
|
<B>-T</B>
|
|
|
|
<DT id="326">
|
|
<DD>
|
|
<B>--test </B>
|
|
|
|
Test the integrity of the new zip file. If the check fails, the old zip file
|
|
is unchanged and (with the
|
|
<B>-m</B>
|
|
|
|
option) no input files are removed.
|
|
<DT id="327">
|
|
<DD>
|
|
<B>-TT </B>cmd
|
|
|
|
<DT id="328">
|
|
<DD>
|
|
<B>--unzip-command </B>cmd
|
|
|
|
Use command cmd instead of 'unzip -tqq' to test an archive when the <B>-T</B>
|
|
option is used. On Unix, to use a copy of unzip in the current directory instead
|
|
of the standard system unzip, could use:
|
|
<DT id="329"><DD>
|
|
zip archive file1 file2 -T -TT "./unzip -tqq"
|
|
<DT id="330"><DD>
|
|
In cmd, {} is replaced by the name of the temporary archive, otherwise the name
|
|
of the archive is appended to the end of the command.
|
|
The return code is checked for success (0 on Unix).
|
|
<DT id="331">
|
|
<DD>
|
|
<B>-u</B>
|
|
|
|
<DT id="332">
|
|
<DD>
|
|
<B>--update</B>
|
|
|
|
Replace (update) an existing entry in the
|
|
<I>zip</I>
|
|
|
|
archive only if it has been modified more recently
|
|
than the version already in the
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
For example:
|
|
<DL COMPACT><DT id="333"><DD>
|
|
<DL COMPACT>
|
|
<DT id="334"><DD>
|
|
zip -u stuff *
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="335"><DD>
|
|
will add any new files in the current directory,
|
|
and update any files which have been modified since the
|
|
<I>zip</I>
|
|
|
|
archive
|
|
<I>stuff.zip</I>
|
|
|
|
was last created/modified (note that
|
|
<I>zip</I>
|
|
|
|
will not try to pack
|
|
<I>stuff.zip</I>
|
|
|
|
into itself when you do this).
|
|
<DT id="336"><DD>
|
|
Note that the
|
|
<B>-u</B>
|
|
|
|
option with no input file arguments acts like the
|
|
<B>-f</B>
|
|
|
|
(freshen) option.
|
|
<DT id="337">
|
|
<DD>
|
|
<B>-U</B>
|
|
|
|
<DT id="338">
|
|
<DD>
|
|
<B>--copy-entries</B>
|
|
|
|
Copy entries from one archive to another. Requires the <B>--out</B>
|
|
option to specify a different output file than the input archive. Copy
|
|
mode is the reverse of <B>-d</B> delete. When delete is being used
|
|
with <B>--out</B>, the selected entries are deleted from the archive
|
|
and all other entries are copied to the new archive, while copy mode
|
|
selects the files to include in the new archive. Unlike <B>-u</B>
|
|
update, input patterns on the command line are matched against archive
|
|
entries only and not the file system files. For instance,
|
|
<DL COMPACT><DT id="339"><DD>
|
|
<DL COMPACT>
|
|
<DT id="340"><DD>
|
|
zip inarchive "*.c" --copy --out outarchive
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="341"><DD>
|
|
copies entries with names ending in <B>.c</B> from <B>inarchive</B>
|
|
to <B>outarchive</B>. The wildcard must be escaped on some systems
|
|
to prevent the shell from substituting names of files from the
|
|
file system which may have no relevance to the entries in the archive.
|
|
<P>
|
|
If no input files appear on the command line and <B>--out</B> is
|
|
used, copy mode is assumed:
|
|
<DL COMPACT><DT id="342"><DD>
|
|
<DL COMPACT>
|
|
<DT id="343"><DD>
|
|
zip inarchive --out outarchive
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="344"><DD>
|
|
This is useful for changing split size for instance. Encrypting
|
|
and decrypting entries is not yet supported using copy mode. Use
|
|
<I>zipcloak</I> for that.
|
|
<DT id="345">
|
|
<DD>
|
|
<B>-UN </B>v
|
|
|
|
<DT id="346">
|
|
<DD>
|
|
<B>--unicode </B>v
|
|
|
|
Determine what <I>zip</I> should do with Unicode file names.
|
|
<I>zip 3.0</I>, in addition to the standard file path, now
|
|
includes the UTF-8 translation of the path if the entry path
|
|
is not entirely 7-bit ASCII. When an entry
|
|
is missing the Unicode path, <I>zip</I> reverts back to the
|
|
standard file path. The problem with using the standard path
|
|
is this path is in the local character set of the zip that created
|
|
the entry, which may contain characters that are not valid in
|
|
the character set being used by the unzip. When <I>zip</I> is
|
|
reading an archive, if an entry also has a Unicode path,
|
|
<I>zip</I> now defaults to using the Unicode path to recreate
|
|
the standard path using the current local character set.
|
|
<P>
|
|
This option can be used to determine what <I>zip</I> should do
|
|
with this path if there is a mismatch between the stored standard path
|
|
and the stored UTF-8 path (which can happen if the standard path was
|
|
updated). In all cases, if there is a mismatch it is
|
|
assumed that the standard path is more current and
|
|
<I>zip</I> uses that. Values for <B>v</B> are
|
|
<DL COMPACT><DT id="347"><DD>
|
|
<DL COMPACT>
|
|
<DT id="348"><DD>
|
|
q - quit if paths do not match
|
|
<DT id="349"><DD>
|
|
w - warn, continue with standard path
|
|
<DT id="350"><DD>
|
|
i - ignore, continue with standard path
|
|
<DT id="351"><DD>
|
|
n - no Unicode, do not use Unicode paths
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="352"><DD>
|
|
The default is to warn and continue.
|
|
<P>
|
|
Characters that are not valid in the current character set are
|
|
escaped as <B>#Uxxxx</B> and <B>#Lxxxxxx</B>, where x is an
|
|
ASCII character for a hex digit. The first is used if a 16-bit
|
|
character number is sufficient to represent the Unicode character
|
|
and the second if the character needs more than 16 bits to
|
|
represent it's Unicode character code. Setting <B>-UN</B> to
|
|
<DL COMPACT><DT id="353"><DD>
|
|
<DL COMPACT>
|
|
<DT id="354"><DD>
|
|
e - escape
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="355"><DD>
|
|
as in
|
|
<DL COMPACT><DT id="356"><DD>
|
|
<DL COMPACT>
|
|
<DT id="357"><DD>
|
|
zip archive -sU -UN=e
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="358"><DD>
|
|
forces <I>zip</I> to escape all characters that are not printable 7-bit
|
|
ASCII.
|
|
<P>
|
|
Normally <I>zip</I> stores UTF-8 directly in the standard path field
|
|
on systems where UTF-8 is the current character set and stores the
|
|
UTF-8 in the new extra fields otherwise. The option
|
|
<DL COMPACT><DT id="359"><DD>
|
|
<DL COMPACT>
|
|
<DT id="360"><DD>
|
|
u - UTF-8
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="361"><DD>
|
|
as in
|
|
<DL COMPACT><DT id="362"><DD>
|
|
<DL COMPACT>
|
|
<DT id="363"><DD>
|
|
zip archive dir -r -UN=UTF8
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="364"><DD>
|
|
forces <I>zip</I> to store UTF-8 as native in the archive. Note that
|
|
storing UTF-8 directly is the default on Unix systems that support it.
|
|
This option could be useful on Windows systems where the escaped
|
|
path is too large to be a valid path and the UTF-8 version of the
|
|
path is smaller, but native UTF-8 is not backward compatible on
|
|
Windows systems.
|
|
<P>
|
|
<DT id="365">
|
|
<DD>
|
|
<B>-v</B>
|
|
|
|
<DT id="366">
|
|
<DD>
|
|
<B>--verbose</B>
|
|
|
|
Verbose mode or print diagnostic version info.
|
|
<DT id="367"><DD>
|
|
Normally, when applied to real operations, this option enables the display of a
|
|
progress indicator during compression (see <B>-dd</B> for more on dots) and
|
|
requests verbose diagnostic info about zipfile structure oddities.
|
|
<DT id="368"><DD>
|
|
However, when
|
|
<B>-v</B>
|
|
|
|
is the only command line argument a diagnostic screen is printed instead. This
|
|
should now work even if stdout is redirected to a file, allowing easy saving
|
|
of the information for sending with bug reports to Info-ZIP. The version
|
|
screen provides the help screen header with program name, version, and release
|
|
date, some pointers to the Info-ZIP home and distribution sites, and shows
|
|
information about the target environment (compiler type and version, OS
|
|
version, compilation date and the enabled optional features used to create the
|
|
<I>zip</I>
|
|
|
|
executable).
|
|
<DT id="369">
|
|
<DD>
|
|
<B>-V</B>
|
|
|
|
<DT id="370">
|
|
<DD>
|
|
<B>--VMS-portable</B>
|
|
|
|
[VMS] Save VMS file attributes.
|
|
(Files are truncated at EOF.) When a -V archive is unpacked on a
|
|
non-VMS system, some file types (notably Stream_LF
|
|
text files and pure binary files like fixed-512)
|
|
should be extracted intact. Indexed files and file
|
|
types with embedded record sizes (notably variable-length record types)
|
|
will probably be seen as corrupt elsewhere.
|
|
<DT id="371">
|
|
<DD>
|
|
<B>-VV</B>
|
|
|
|
<DT id="372">
|
|
<DD>
|
|
<B>--VMS-specific</B>
|
|
|
|
[VMS] Save VMS file attributes, and all allocated
|
|
blocks in a file, including any data beyond EOF.
|
|
Useful for moving ill-formed files among VMS systems. When a -VV archive is
|
|
unpacked on a non-VMS system, almost all files will appear corrupt.
|
|
<DT id="373">
|
|
<DD>
|
|
<B>-w</B>
|
|
|
|
<DT id="374">
|
|
<DD>
|
|
<B>--VMS-versions</B>
|
|
|
|
[VMS] Append the version number of the files to the name,
|
|
including multiple versions of files. Default is to use only
|
|
the most recent version of a specified file.
|
|
<DT id="375">
|
|
<DD>
|
|
<B>-ww</B>
|
|
|
|
<DT id="376">
|
|
<DD>
|
|
<B>--VMS-dot-versions</B>
|
|
|
|
[VMS] Append the version number of the files to the name,
|
|
including multiple versions of files, using the .nnn format.
|
|
Default is to use only the most recent version of a specified
|
|
file.
|
|
<DT id="377">
|
|
<DD>
|
|
<B>-ws</B>
|
|
|
|
<DT id="378">
|
|
<DD>
|
|
<B>--wild-stop-dirs</B>
|
|
|
|
Wildcards match only at a directory level. Normally <I>zip</I> handles
|
|
paths as strings and given the paths
|
|
<DL COMPACT><DT id="379"><DD>
|
|
<DL COMPACT>
|
|
<DT id="380"><DD>
|
|
/foo/bar/dir/file1.c
|
|
<DT id="381"><DD>
|
|
/foo/bar/file2.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="382"><DD>
|
|
an input pattern such as
|
|
<DL COMPACT><DT id="383"><DD>
|
|
<DL COMPACT>
|
|
<DT id="384"><DD>
|
|
/foo/bar/*
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="385"><DD>
|
|
normally would match both paths, the * matching <B>dir/file1.c</B>
|
|
and <B>file2.c</B>. Note that in the first case a directory
|
|
boundary (/) was crossed in the match. With <B>-ws</B> no
|
|
directory bounds will be included in the match, making
|
|
wildcards local to a specific directory level. So, with
|
|
<B>-ws</B> enabled, only the second path would be matched.
|
|
<P>
|
|
When using <B>-ws</B>, use ** to match across directory boundaries as
|
|
* does normally.
|
|
<DT id="386">
|
|
<DD>
|
|
<B>-x </B>files
|
|
|
|
<DT id="387">
|
|
<DD>
|
|
<B>--exclude </B>files
|
|
|
|
Explicitly exclude the specified files, as in:
|
|
<DL COMPACT><DT id="388"><DD>
|
|
<DL COMPACT>
|
|
<DT id="389"><DD>
|
|
zip -r foo foo -x \*.o
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="390"><DD>
|
|
which will include the contents of
|
|
<B>foo</B>
|
|
|
|
in
|
|
<B>foo.zip</B>
|
|
|
|
while excluding all the files that end in
|
|
<B>.o</B>.
|
|
The backslash avoids the shell filename substitution, so that the
|
|
name matching is performed by
|
|
<I>zip</I>
|
|
|
|
at all directory levels.
|
|
<DT id="391"><DD>
|
|
Also possible:
|
|
<DL COMPACT><DT id="392"><DD>
|
|
<DL COMPACT>
|
|
<DT id="393"><DD>
|
|
zip -r foo foo <A HREF="mailto:-x@exclude.lst">-x@exclude.lst</A>
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="394"><DD>
|
|
which will include the contents of
|
|
<B>foo</B>
|
|
|
|
in
|
|
<B>foo.zip</B>
|
|
|
|
while excluding all the files that match the patterns in the file
|
|
<B>exclude.lst</B>.
|
|
<DT id="395"><DD>
|
|
The long option forms of the above are
|
|
<DL COMPACT><DT id="396"><DD>
|
|
<DL COMPACT>
|
|
<DT id="397"><DD>
|
|
zip -r foo foo --exclude \*.o
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="398"><DD>
|
|
and
|
|
<DL COMPACT><DT id="399"><DD>
|
|
<DL COMPACT>
|
|
<DT id="400"><DD>
|
|
zip -r foo foo --exclude @exclude.lst
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="401"><DD>
|
|
Multiple patterns can be specified, as in:
|
|
<DL COMPACT><DT id="402"><DD>
|
|
<DL COMPACT>
|
|
<DT id="403"><DD>
|
|
zip -r foo foo -x \*.o \*.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="404"><DD>
|
|
If there is no space between <B>-x</B> and
|
|
the pattern, just one value is assumed (no list):
|
|
<DL COMPACT><DT id="405"><DD>
|
|
<DL COMPACT>
|
|
<DT id="406"><DD>
|
|
zip -r foo foo -x\*.o
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="407"><DD>
|
|
<DT id="408"><DD>
|
|
See <B>-i</B> for more on include and exclude.
|
|
<DT id="409">
|
|
<DD>
|
|
<B>-X</B>
|
|
|
|
<DT id="410">
|
|
<DD>
|
|
<B>--no-extra</B>
|
|
|
|
Do not save extra file attributes (Extended Attributes on OS/2, uid/gid
|
|
and file times on Unix). The zip format uses extra fields to include
|
|
additional information for each entry. Some extra fields are specific
|
|
to particular systems while others are applicable to all systems.
|
|
Normally when <I>zip</I> reads entries from an existing archive, it
|
|
reads the extra fields it knows, strips the rest, and adds
|
|
the extra fields applicable to that system. With <B>-X</B>, <I>zip</I> strips
|
|
all old fields and only includes the Unicode and Zip64 extra fields
|
|
(currently these two extra fields cannot be disabled).
|
|
<P>
|
|
Negating this option, <B>-X-</B>, includes all the default extra fields,
|
|
but also copies over any unrecognized extra fields.
|
|
<DT id="411">
|
|
<DD>
|
|
<B>-y</B>
|
|
|
|
<DT id="412">
|
|
<DD>
|
|
<B>--symlinks</B>
|
|
|
|
For UNIX and VMS (V8.3 and later), store symbolic links as such in the
|
|
<I>zip</I>
|
|
|
|
archive, instead of compressing and storing the file referred to by
|
|
the link. This can avoid multiple copies of files being included in
|
|
the archive as <I>zip</I> recurses the directory trees and accesses
|
|
files directly and by links.
|
|
<DT id="413">
|
|
<DD>
|
|
<B>-z</B>
|
|
|
|
<DT id="414">
|
|
<DD>
|
|
<B>--archive-comment</B>
|
|
|
|
Prompt for a multi-line comment for the entire
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
The comment is ended by a line containing just a period,
|
|
or an end of file condition (^D on Unix, ^Z on MSDOS, OS/2, and VMS).
|
|
The comment can be taken from a file:
|
|
<DL COMPACT><DT id="415"><DD>
|
|
<DL COMPACT>
|
|
<DT id="416"><DD>
|
|
zip -z foo < foowhat
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="417">
|
|
<DD>
|
|
<B>-Z </B>cm
|
|
|
|
<DT id="418">
|
|
<DD>
|
|
<B>--compression-method </B>cm
|
|
|
|
Set the default compression method. Currently the main methods supported
|
|
by <I>zip</I> are <B>store</B> and <B>deflate</B>. Compression method
|
|
can be set to:
|
|
<P>
|
|
<B>store</B> - Setting the compression method to <B>store</B> forces
|
|
<I>zip</I> to store entries with no compression. This is generally
|
|
faster than compressing entries, but results in no space savings.
|
|
This is the same as using <B>-0</B> (compression level zero).
|
|
<P>
|
|
<B>deflate</B> - This is the default method for <I>zip</I>. If <I>zip</I>
|
|
determines that storing is better than deflation, the entry will be
|
|
stored instead.
|
|
<P>
|
|
<B>bzip2</B> - If <B>bzip2</B> support is compiled in, this compression
|
|
method also becomes available. Only some modern unzips currently support
|
|
the <B>bzip2</B> compression method, so test the unzip you will be using
|
|
before relying on archives using this method (compression method 12).
|
|
<P>
|
|
For example, to add <B>bar.c</B> to archive <B>foo</B> using <B>bzip2</B>
|
|
compression:
|
|
<DL COMPACT><DT id="419"><DD>
|
|
<DL COMPACT>
|
|
<DT id="420"><DD>
|
|
zip -Z bzip2 foo bar.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="421"><DD>
|
|
The compression method can be abbreviated:
|
|
<DL COMPACT><DT id="422"><DD>
|
|
<DL COMPACT>
|
|
<DT id="423"><DD>
|
|
zip -Zb foo bar.c
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="424"><DD>
|
|
<DT id="425">
|
|
<DD>
|
|
<B>-#</B>
|
|
|
|
<DT id="426">
|
|
<DD>
|
|
<B>(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)</B>
|
|
|
|
Regulate the speed of compression using the specified digit
|
|
<B>#</B>,
|
|
|
|
where
|
|
<B>-0</B>
|
|
|
|
indicates no compression (store all files),
|
|
<B>-1</B>
|
|
|
|
indicates the fastest compression speed (less compression)
|
|
and
|
|
<B>-9</B>
|
|
|
|
indicates the slowest compression speed (optimal compression, ignores
|
|
the suffix list). The default compression level is
|
|
<B>-6.</B>
|
|
|
|
<P>
|
|
Though still being worked, the intention is this setting will control
|
|
compression speed for all compression methods. Currently only
|
|
deflation is controlled.
|
|
<DT id="427">
|
|
<DD>
|
|
<B>-!</B>
|
|
|
|
<DT id="428">
|
|
<DD>
|
|
<B>--use-privileges</B>
|
|
|
|
[WIN32] Use privileges (if granted) to obtain all aspects of WinNT security.
|
|
<DT id="429">
|
|
<DD>
|
|
<B>-@</B>
|
|
|
|
<DT id="430">
|
|
<DD>
|
|
<B>--names-stdin</B>
|
|
|
|
Take the list of input files from standard input. Only one filename per line.
|
|
<DT id="431">
|
|
<DD>
|
|
<B>-$</B>
|
|
|
|
<DT id="432">
|
|
<DD>
|
|
<B>--volume-label</B>
|
|
|
|
[MSDOS, OS/2, WIN32] Include the volume label for the drive holding
|
|
the first file to be compressed. If you want to include only the volume
|
|
label or to force a specific drive, use the drive name as first file name,
|
|
as in:
|
|
<DL COMPACT><DT id="433"><DD>
|
|
<DL COMPACT>
|
|
<DT id="434"><DD>
|
|
zip -$ foo a: c:bar
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="435"><DD>
|
|
</DL>
|
|
<A NAME="lbAG"> </A>
|
|
<H2>EXAMPLES</H2>
|
|
|
|
The simplest example:
|
|
<DL COMPACT>
|
|
<DT id="436"><DD>
|
|
zip stuff *
|
|
</DL>
|
|
<P>
|
|
|
|
creates the archive
|
|
<I>stuff.zip</I>
|
|
|
|
(assuming it does not exist)
|
|
and puts all the files in the current directory in it, in compressed form
|
|
(the
|
|
<B>.zip</B>
|
|
suffix is added automatically, unless the archive name contains
|
|
a dot already;
|
|
this allows the explicit specification of other suffixes).
|
|
<P>
|
|
|
|
Because of the way the shell on Unix does filename substitution,
|
|
files starting with "." are not included;
|
|
to include these as well:
|
|
<DL COMPACT>
|
|
<DT id="437"><DD>
|
|
zip stuff .* *
|
|
</DL>
|
|
<P>
|
|
|
|
Even this will not include any subdirectories from the current directory.
|
|
<P>
|
|
|
|
To zip up an entire directory, the command:
|
|
<DL COMPACT>
|
|
<DT id="438"><DD>
|
|
zip -r foo foo
|
|
</DL>
|
|
<P>
|
|
|
|
creates the archive
|
|
<I>foo.zip</I>,
|
|
|
|
containing all the files and directories in the directory
|
|
<I>foo</I>
|
|
|
|
that is contained within the current directory.
|
|
<P>
|
|
|
|
You may want to make a
|
|
<I>zip</I>
|
|
|
|
archive that contains the files in
|
|
<I>foo</I>,
|
|
|
|
without recording the directory name,
|
|
<I>foo</I>.
|
|
|
|
You can use the
|
|
<B>-j</B>
|
|
|
|
option to leave off the paths,
|
|
as in:
|
|
<DL COMPACT>
|
|
<DT id="439"><DD>
|
|
zip -j foo foo/*
|
|
</DL>
|
|
<P>
|
|
|
|
If you are short on disk space,
|
|
you might not have enough room to hold both the original directory
|
|
and the corresponding compressed
|
|
<I>zip</I>
|
|
|
|
archive.
|
|
In this case, you can create the archive in steps using the
|
|
<B>-m</B>
|
|
|
|
option.
|
|
If
|
|
<I>foo</I>
|
|
|
|
contains the subdirectories
|
|
<I>tom</I>,
|
|
|
|
<I>dick</I>,
|
|
|
|
and
|
|
<I>harry</I>,
|
|
|
|
you can:
|
|
<DL COMPACT>
|
|
<DT id="440"><DD>
|
|
zip -rm foo foo/tom
|
|
<BR>
|
|
|
|
zip -rm foo foo/dick
|
|
<BR>
|
|
|
|
zip -rm foo foo/harry
|
|
</DL>
|
|
<P>
|
|
|
|
where the first command creates
|
|
<I>foo.zip</I>,
|
|
|
|
and the next two add to it.
|
|
At the completion of each
|
|
<I>zip</I>
|
|
|
|
command,
|
|
the last created archive is deleted,
|
|
making room for the next
|
|
<I>zip</I>
|
|
|
|
command to function.
|
|
<P>
|
|
<P>
|
|
<P>
|
|
<P>
|
|
|
|
Use <B>-s</B> to set the split size and create a split archive. The size is given as
|
|
a number followed optionally by one of k (kB), m (MB), g (GB), or t (TB).
|
|
The command
|
|
<DL COMPACT>
|
|
<DT id="441"><DD>
|
|
zip -s 2g -r split.zip foo
|
|
</DL>
|
|
<P>
|
|
|
|
creates a split archive of the directory foo with splits no bigger than 2 GB each. If
|
|
foo contained 5 GB of contents and the contents were stored in the split archive without
|
|
compression (to make this example simple), this would create three splits, split.z01 at 2 GB,
|
|
split.z02 at 2 GB, and split.zip at a little over 1 GB.
|
|
<P>
|
|
|
|
The <B>-sp</B> option can be used to pause <I>zip</I> between splits to allow changing
|
|
removable media, for example, but read the descriptions and warnings for both <B>-s</B>
|
|
and <B>-sp</B> below.
|
|
<P>
|
|
|
|
Though <I>zip</I> does not update split archives, <I>zip</I> provides the new option <B>-O</B>
|
|
(<B>--output-file</B>) to allow split archives to be updated and saved in a new archive. For example,
|
|
<DL COMPACT>
|
|
<DT id="442"><DD>
|
|
zip inarchive.zip foo.c bar.c --out outarchive.zip
|
|
</DL>
|
|
<P>
|
|
|
|
reads archive <B>inarchive.zip</B>, even if split, adds the files <B>foo.c</B> and
|
|
<B>bar.c</B>, and writes the resulting archive to <B>outarchive.zip</B>. If
|
|
<B>inarchive.zip</B> is split then <B>outarchive.zip</B> defaults
|
|
to the same split size. Be aware that <B>outarchive.zip</B> and any split files
|
|
that are created with it are always overwritten without warning. This may be changed
|
|
in the future.
|
|
<P>
|
|
<P>
|
|
<P>
|
|
<P>
|
|
<A NAME="lbAH"> </A>
|
|
<H2>PATTERN MATCHING</H2>
|
|
|
|
This section applies only to Unix.
|
|
Watch this space for details on MSDOS and VMS operation.
|
|
However, the special wildcard characters <B>*</B> and <B>[]</B> below apply
|
|
to at least MSDOS also.
|
|
<P>
|
|
|
|
The Unix shells (<I>sh</I>, <I>csh</I>, <I>bash</I>, and others) normally
|
|
do filename substitution (also called "globbing") on command arguments.
|
|
Generally the special characters are:
|
|
<DL COMPACT>
|
|
<DT id="443"><B>?</B>
|
|
|
|
<DD>
|
|
match any single character
|
|
<DT id="444"><B>*</B>
|
|
|
|
<DD>
|
|
match any number of characters (including none)
|
|
<DT id="445"><B>[]</B>
|
|
|
|
<DD>
|
|
match any character in the range indicated within the brackets
|
|
(example: [a-f], [0-9]). This form of wildcard matching
|
|
allows a user to specify a list of characters between square brackets and
|
|
if any of the characters match the expression matches. For example:
|
|
<DL COMPACT><DT id="446"><DD>
|
|
<DL COMPACT>
|
|
<DT id="447"><DD>
|
|
zip archive "*.[hc]"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="448"><DD>
|
|
would archive all files in the current directory that end in
|
|
<B>.h</B> or <B>.c</B>.
|
|
<P>
|
|
Ranges of characters are supported:
|
|
<DL COMPACT><DT id="449"><DD>
|
|
<DL COMPACT>
|
|
<DT id="450"><DD>
|
|
zip archive "[a-f]*"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="451"><DD>
|
|
would add to the archive all files starting with "a" through "f".
|
|
<P>
|
|
Negation is also supported, where any character in that position not in
|
|
the list matches. Negation is supported by adding <B>!</B> or <B>^</B>
|
|
to the beginning of the list:
|
|
<DL COMPACT><DT id="452"><DD>
|
|
<DL COMPACT>
|
|
<DT id="453"><DD>
|
|
zip archive "*.[!o]"
|
|
</DL>
|
|
</DL>
|
|
|
|
<DT id="454"><DD>
|
|
matches files that don't end in ".o".
|
|
<P>
|
|
On WIN32, [] matching needs to be turned on with the -RE option to avoid
|
|
the confusion that names with [ or ] have caused.
|
|
<P>
|
|
</DL>
|
|
<P>
|
|
|
|
When these characters are encountered
|
|
(without being escaped with a backslash or quotes),
|
|
the shell will look for files relative to the current path
|
|
that match the pattern,
|
|
and replace the argument with a list of the names that matched.
|
|
<P>
|
|
|
|
The
|
|
<I>zip</I>
|
|
|
|
program can do the same matching on names that are in the
|
|
<I>zip</I>
|
|
|
|
archive being modified or,
|
|
in the case of the
|
|
<B>-x</B>
|
|
|
|
(exclude) or
|
|
<B>-i</B>
|
|
|
|
(include) options, on the list of files to be operated on, by using
|
|
backslashes or quotes to tell the shell not to do the name expansion.
|
|
In general, when
|
|
<I>zip</I>
|
|
|
|
encounters a name in the list of files to do, it first looks for the name in
|
|
the file system. If it finds it, it then adds it to the list of files to do.
|
|
If it does not find it, it looks for the name in the
|
|
<I>zip</I>
|
|
|
|
archive being modified (if it exists), using the pattern matching characters
|
|
described above, if present. For each match, it will add that name to the
|
|
list of files to be processed, unless this name matches one given
|
|
with the
|
|
<B>-x</B>
|
|
|
|
option, or does not match any name given with the
|
|
<B>-i</B>
|
|
|
|
option.
|
|
<P>
|
|
|
|
The pattern matching includes the path,
|
|
and so patterns like \*.o match names that end in ".o",
|
|
no matter what the path prefix is.
|
|
Note that the backslash must precede every special character (i.e. ?*[]),
|
|
or the entire argument must be enclosed in double quotes ("").
|
|
<P>
|
|
|
|
In general, use backslashes or double quotes for paths
|
|
that have wildcards to make
|
|
<I>zip</I>
|
|
|
|
do the pattern matching for file paths, and always for
|
|
paths and strings that have spaces or wildcards for
|
|
<B>-i</B>, <B>-x</B>, <B>-R</B>, <B>-d</B>, and <B>-U</B>
|
|
and anywhere <I>zip</I> needs to process the wildcards.
|
|
<A NAME="lbAI"> </A>
|
|
<H2>ENVIRONMENT</H2>
|
|
|
|
<P>
|
|
|
|
The following environment variables are read and used by
|
|
<I>zip</I>
|
|
|
|
as described.
|
|
<DL COMPACT>
|
|
<DT id="455"><B>ZIPOPT </B>
|
|
|
|
<DD>
|
|
contains default options that will be used when running
|
|
<I>zip</I>. The contents of this environment variable will get
|
|
added to the command line just after the <B>zip</B> command.
|
|
<DT id="456"><B>ZIP </B>
|
|
|
|
<DD>
|
|
[Not on RISC OS and VMS] see ZIPOPT
|
|
<DT id="457"><B>Zip$Options</B>
|
|
|
|
<DD>
|
|
[RISC OS] see ZIPOPT
|
|
<DT id="458"><B>Zip$Exts</B>
|
|
|
|
<DD>
|
|
[RISC OS] contains extensions separated by a : that will cause
|
|
native filenames with one of the specified extensions to
|
|
be added to the zip file with basename and extension swapped.
|
|
<DT id="459"><B>ZIP_OPTS</B>
|
|
|
|
<DD>
|
|
[VMS] see ZIPOPT
|
|
</DL>
|
|
<A NAME="lbAJ"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<A HREF="/cgi-bin/man/man2html?1+compress">compress</A>(1),
|
|
<A HREF="/cgi-bin/man/man2html?1+shar">shar</A>(1),
|
|
<A HREF="/cgi-bin/man/man2html?1+tar">tar</A>(1),
|
|
<A HREF="/cgi-bin/man/man2html?1+unzip">unzip</A>(1),
|
|
<A HREF="/cgi-bin/man/man2html?1+gzip">gzip</A>(1)
|
|
<A NAME="lbAK"> </A>
|
|
<H2>DIAGNOSTICS</H2>
|
|
|
|
The exit status (or error level) approximates the exit codes defined by PKWARE
|
|
and takes on the following values, except under VMS:
|
|
<DL COMPACT><DT id="460"><DD>
|
|
<DL COMPACT>
|
|
<DT id="461">0<DD>
|
|
normal; no errors or warnings detected.
|
|
<DT id="462">2<DD>
|
|
unexpected end of zip file.
|
|
<DT id="463">3<DD>
|
|
a generic error in the zipfile format was detected. Processing may have
|
|
completed successfully anyway; some broken zipfiles created by other
|
|
archivers have simple work-arounds.
|
|
<DT id="464">4<DD>
|
|
<I>zip</I> was unable to allocate memory for one or more buffers during
|
|
program initialization.
|
|
<DT id="465">5<DD>
|
|
a severe error in the zipfile format was detected. Processing probably
|
|
failed immediately.
|
|
<DT id="466">6<DD>
|
|
entry too large to be processed (such as input files larger than 2 GB when
|
|
not using Zip64 or trying to read an existing archive that is too large) or
|
|
entry too large to be split with <I>zipsplit</I>
|
|
<DT id="467">7<DD>
|
|
invalid comment format
|
|
<DT id="468">8<DD>
|
|
<I>zip</I> -T failed or out of memory
|
|
<DT id="469">9<DD>
|
|
the user aborted <I>zip</I> prematurely with control-C (or similar)
|
|
<DT id="470">10<DD>
|
|
<I>zip</I> encountered an error while using a temp file
|
|
<DT id="471">11<DD>
|
|
read or seek error
|
|
<DT id="472">12<DD>
|
|
<I>zip</I> has nothing to do
|
|
<DT id="473">13<DD>
|
|
missing or empty zip file
|
|
<DT id="474">14<DD>
|
|
error writing to a file
|
|
<DT id="475">15<DD>
|
|
<I>zip</I> was unable to create a file to write to
|
|
<DT id="476">16<DD>
|
|
bad command line parameters
|
|
<DT id="477">18<DD>
|
|
<I>zip</I> could not open a specified file to read
|
|
<DT id="478">19<DD>
|
|
<I>zip</I> was compiled with options not supported on this system
|
|
</DL>
|
|
</DL>
|
|
|
|
<P>
|
|
|
|
VMS interprets standard Unix (or PC) return values as other, scarier-looking
|
|
things, so <I>zip</I> instead maps them into VMS-style status codes. In
|
|
general, <I>zip</I> sets VMS Facility = 1955 (0x07A3), Code = 2* Unix_status,
|
|
and an appropriate Severity (as specified in ziperr.h). More details are
|
|
included in the VMS-specific documentation. See [.vms]NOTES.TXT and
|
|
[.vms]vms_msg_gen.c.
|
|
|
|
<A NAME="lbAL"> </A>
|
|
<H2>BUGS</H2>
|
|
|
|
<I>zip</I>
|
|
|
|
3.0 is not compatible with PKUNZIP 1.10. Use
|
|
<I>zip</I>
|
|
|
|
1.1 to produce
|
|
<I>zip</I>
|
|
|
|
files which can be extracted by PKUNZIP 1.10.
|
|
<P>
|
|
|
|
<I>zip</I>
|
|
|
|
files produced by
|
|
<I>zip</I>
|
|
|
|
3.0 must not be
|
|
<I>updated</I>
|
|
|
|
by
|
|
<I>zip</I>
|
|
|
|
1.1 or PKZIP 1.10, if they contain
|
|
encrypted members or if they have been produced in a pipe or on a non-seekable
|
|
device. The old versions of
|
|
<I>zip</I>
|
|
|
|
or PKZIP would create an archive with an incorrect format.
|
|
The old versions can list the contents of the zip file
|
|
but cannot extract it anyway (because of the new compression algorithm).
|
|
If you do not use encryption and use regular disk files, you do
|
|
not have to care about this problem.
|
|
<P>
|
|
|
|
Under VMS,
|
|
not all of the odd file formats are treated properly.
|
|
Only stream-LF format
|
|
<I>zip</I>
|
|
|
|
files are expected to work with
|
|
<I>zip</I>.
|
|
|
|
Others can be converted using Rahul Dhesi's BILF program.
|
|
This version of
|
|
<I>zip</I>
|
|
|
|
handles some of the conversion internally.
|
|
When using Kermit to transfer zip files from VMS to MSDOS, type "set
|
|
file type block" on VMS. When transferring from MSDOS to VMS, type
|
|
"set file type fixed" on VMS. In both cases, type "set file type
|
|
binary" on MSDOS.
|
|
<P>
|
|
|
|
Under some older VMS versions, <I>zip</I> may hang for file
|
|
specifications that use DECnet syntax
|
|
<I>foo::*.*.</I>
|
|
|
|
<P>
|
|
|
|
On OS/2, zip cannot match some names, such as those including an
|
|
exclamation mark or a hash sign. This is a bug in OS/2 itself: the
|
|
32-bit DosFindFirst/Next don't find such names. Other programs such
|
|
as GNU tar are also affected by this bug.
|
|
<P>
|
|
|
|
Under OS/2, the amount of Extended Attributes displayed by DIR is (for
|
|
compatibility) the amount returned by the 16-bit version of
|
|
DosQueryPathInfo(). Otherwise OS/2 1.3 and 2.0 would report different
|
|
EA sizes when DIRing a file.
|
|
However, the structure layout returned by the 32-bit DosQueryPathInfo()
|
|
is a bit different, it uses extra padding bytes and link pointers (it's
|
|
a linked list) to have all fields on 4-byte boundaries for portability
|
|
to future RISC OS/2 versions. Therefore the value reported by
|
|
<I>zip</I>
|
|
|
|
(which uses this 32-bit-mode size) differs from that reported by DIR.
|
|
<I>zip</I>
|
|
|
|
stores the 32-bit format for portability, even the 16-bit
|
|
MS-C-compiled version running on OS/2 1.3, so even this one shows the
|
|
32-bit-mode size.
|
|
<A NAME="lbAM"> </A>
|
|
<H2>AUTHORS</H2>
|
|
|
|
Copyright (C) 1997-2008 Info-ZIP.
|
|
<P>
|
|
|
|
Currently distributed under the Info-ZIP license.
|
|
<P>
|
|
|
|
Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly,
|
|
Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush and
|
|
Paul Kienitz.
|
|
<P>
|
|
|
|
Original copyright:
|
|
<P>
|
|
|
|
Permission is granted to any individual or institution to use, copy, or
|
|
redistribute this software so long as all of the original files are included,
|
|
that it is not sold for profit, and that this copyright notice
|
|
is retained.
|
|
<P>
|
|
|
|
LIKE ANYTHING ELSE THAT'S FREE, ZIP AND ITS ASSOCIATED UTILITIES ARE
|
|
PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR
|
|
IMPLIED. IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES
|
|
RESULTING FROM THE USE OF THIS SOFTWARE.
|
|
<P>
|
|
|
|
Please send bug reports and comments using the web page at:
|
|
<I><A HREF="http://www.info-zip.org">www.info-zip.org</A></I>.
|
|
|
|
For bug reports, please include the version of
|
|
<I>zip</I>
|
|
|
|
(see <I>zip -h</I>),
|
|
the make options used to compile it (see <I>zip -v</I>),
|
|
the machine and operating system in use,
|
|
and as much additional information as possible.
|
|
<A NAME="lbAN"> </A>
|
|
<H2>ACKNOWLEDGEMENTS</H2>
|
|
|
|
Thanks to R. P. Byrne for his
|
|
<I>Shrink.Pas</I>
|
|
|
|
program, which inspired this project,
|
|
and from which the shrink algorithm was stolen;
|
|
to Phil Katz for placing in the public domain the
|
|
<I>zip</I>
|
|
|
|
file format, compression format, and .ZIP filename extension, and for
|
|
accepting minor changes to the file format; to Steve Burg for
|
|
clarifications on the deflate format; to Haruhiko Okumura and Leonid
|
|
Broukhis for providing some useful ideas for the compression
|
|
algorithm; to Keith Petersen, Rich Wales, Hunter Goatley and Mark
|
|
Adler for providing a mailing list and
|
|
<I>ftp</I>
|
|
|
|
site for the Info-ZIP group to use; and most importantly, to the
|
|
Info-ZIP group itself (listed in the file
|
|
<I>infozip.who</I>)
|
|
|
|
without whose tireless testing and bug-fixing efforts a portable
|
|
<I>zip</I>
|
|
|
|
would not have been possible.
|
|
Finally we should thank (blame) the first Info-ZIP moderator,
|
|
David Kirschbaum,
|
|
for getting us into this mess in the first place.
|
|
The manual page was rewritten for Unix by R. P. C. Rodgers and
|
|
updated by E. Gordon for <I>zip</I> 3.0.
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="479"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="480"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="481"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="482"><A HREF="#lbAE">USE</A><DD>
|
|
<DT id="483"><A HREF="#lbAF">OPTIONS</A><DD>
|
|
<DT id="484"><A HREF="#lbAG">EXAMPLES</A><DD>
|
|
<DT id="485"><A HREF="#lbAH">PATTERN MATCHING</A><DD>
|
|
<DT id="486"><A HREF="#lbAI">ENVIRONMENT</A><DD>
|
|
<DT id="487"><A HREF="#lbAJ">SEE ALSO</A><DD>
|
|
<DT id="488"><A HREF="#lbAK">DIAGNOSTICS</A><DD>
|
|
<DT id="489"><A HREF="#lbAL">BUGS</A><DD>
|
|
<DT id="490"><A HREF="#lbAM">AUTHORS</A><DD>
|
|
<DT id="491"><A HREF="#lbAN">ACKNOWLEDGEMENTS</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:05:31 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|