which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
1027 lines
26 KiB
Groff
Executable File
1027 lines
26 KiB
Groff
Executable File
.\" Copyright (C) 1990-1996 Mark Adler, Richard B. Wales, Jean-loup Gailly,
|
|
.\" Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush and
|
|
.\" Paul Kienitz.
|
|
.\" 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.
|
|
.\" zip.1 by Mark Adler, Jean-loup Gailly and R. P. C. Rodgers
|
|
.\"
|
|
.TH ZIP 1L "13 Apr 1996"
|
|
.SH NAME
|
|
zip, zipcloak, zipnote, zipsplit \- package and compress (archive) files
|
|
.SH SYNOPSIS
|
|
.B zip
|
|
.RB [ \-AcdDeEfFghjklLmoqrSTuvVwXyz@$ ]
|
|
.RB [ \-b\ path ]
|
|
.RB [ \-n\ suffixes ]
|
|
.RB [ \-t\ mmddyy ]
|
|
.I [ zipfile
|
|
.I [ file1
|
|
.IR file2 " .\|.\|." ]]
|
|
.RB [ \-xi\ list ]
|
|
.PP
|
|
.B zipcloak
|
|
.RB [ \-dhL ]
|
|
.RB [ \-b\ path ]
|
|
.I zipfile
|
|
.PP
|
|
.B zipnote
|
|
.RB [ \-hwL ]
|
|
.RB [ \-b\ path ]
|
|
.I zipfile
|
|
.PP
|
|
.B zipsplit
|
|
.RB [ \-hiLpst ]
|
|
.RB [ \-n\ size ]
|
|
.RB [ \-b\ path ]
|
|
.I zipfile
|
|
.SH DESCRIPTION
|
|
.I zip
|
|
is a compression and file packaging utility for Unix, VMS, MSDOS,
|
|
OS/2, Windows NT, Minix, Atari and Macintosh.
|
|
It is analogous to a combination of the UNIX commands
|
|
.IR tar (1)
|
|
and
|
|
.IR compress (1)
|
|
and is compatible with PKZIP (Phil Katz's ZIP for MSDOS systems).
|
|
.LP
|
|
A companion program
|
|
.RI ( unzip (1L)),
|
|
unpacks
|
|
.I zip
|
|
archives.
|
|
The
|
|
.I zip
|
|
and
|
|
.IR unzip (1L)
|
|
programs can work with archives produced by PKZIP,
|
|
and PKZIP and PKUNZIP can work with archives produced by
|
|
.IR zip .
|
|
.I zip
|
|
version 2.1 is compatible with PKZIP 2.04.
|
|
Note that PKUNZIP 1.10 cannot extract files produced by PKZIP 2.04
|
|
or
|
|
.I zip
|
|
2.1. You must use PKUNZIP 2.04g or
|
|
.I unzip
|
|
5.0p1 (or later versions) to extract them.
|
|
.PP
|
|
For a brief help on
|
|
.I zip
|
|
and
|
|
.I unzip,
|
|
run each without specifying any parameters on the command line.
|
|
.PP
|
|
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.
|
|
.LP
|
|
The
|
|
.I zip
|
|
program puts one or more compressed files into a single
|
|
.I zip
|
|
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
|
|
archive with a single command.
|
|
Compression ratios of 2:1 to 3:1 are common for text files.
|
|
.I zip
|
|
has one compression method (deflation) and can also store files without
|
|
compression.
|
|
.I zip
|
|
automatically chooses the better of the two for each file to be compressed.
|
|
.LP
|
|
When given the name of an existing
|
|
.I zip
|
|
archive,
|
|
.I zip
|
|
will replace identically named entries in the
|
|
.I zip
|
|
archive or add entries for new names.
|
|
For example,
|
|
if
|
|
.I foo.zip
|
|
exists and contains
|
|
.I foo/file1
|
|
and
|
|
.IR foo/file2 ,
|
|
and the directory
|
|
.I foo
|
|
contains the files
|
|
.I foo/file1
|
|
and
|
|
.IR foo/file3 ,
|
|
then:
|
|
.IP
|
|
\fCzip -r foo foo\fP
|
|
.LP
|
|
will replace
|
|
.I foo/file1
|
|
in
|
|
.I foo.zip
|
|
and add
|
|
.I foo/file3
|
|
to
|
|
.IR foo.zip .
|
|
After this,
|
|
.I foo.zip
|
|
contains
|
|
.IR foo/file1 ,
|
|
.IR foo/file2 ,
|
|
and
|
|
.IR foo/file3 ,
|
|
with
|
|
.I foo/file2
|
|
unchanged from before.
|
|
.LP
|
|
If the file list is specified as
|
|
.BR \-@ ,
|
|
.I zip
|
|
takes the list of input files from standard input.
|
|
Under UNIX,
|
|
this option can be used to powerful effect in conjunction with the
|
|
.IR find (1)
|
|
command.
|
|
For example,
|
|
to archive all the C source files in the current directory and
|
|
its subdirectories:
|
|
.IP
|
|
\fCfind . -name "*.[ch]" -print | zip source -@\fP
|
|
.LP
|
|
(note that the pattern must be quoted to keep the shell from expanding it).
|
|
.I zip
|
|
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:
|
|
.IP
|
|
\fCzip -r - . | dd of=/dev/nrst0 obs=16k\fP
|
|
.LP
|
|
would write the zip output directly to a tape with the specified block size
|
|
for the purpose of backing up the current directory.
|
|
.LP
|
|
.I zip
|
|
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:
|
|
.IP
|
|
\fCtar cf - . | zip backup -\fP
|
|
.LP
|
|
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
|
|
can take advantage of redundancy between files. The backup can be restored
|
|
using the command
|
|
.IP
|
|
\fCunzip -p backup | tar xf -\fP
|
|
.LP
|
|
When no zip file name is given and stdout is not a terminal,
|
|
.I zip
|
|
acts as a filter, compressing standard input to standard output.
|
|
For example,
|
|
.IP
|
|
\fCtar cf - . | zip | dd of=/dev/nrst0 obs=16k\fP
|
|
.LP
|
|
is equivalent to
|
|
.IP
|
|
\fCtar cf - . | zip - - | dd of=/dev/nrst0 obs=16k\fP
|
|
.LP
|
|
.I zip
|
|
archives created in this manner can be extracted with the program
|
|
.I funzip
|
|
which is provided in the
|
|
.I unzip
|
|
package, or by
|
|
.I gunzip
|
|
which is provided in the
|
|
.I gzip
|
|
package. For example:
|
|
.LP
|
|
\fPdd if=/dev/nrst0 ibs=16k | funzip | tar xvf -\fC
|
|
.LP
|
|
When changing an existing
|
|
.I zip
|
|
archive,
|
|
.I zip
|
|
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.
|
|
.LP
|
|
If the name of the
|
|
.I zip
|
|
archive does not contain an extension, the extension
|
|
.IR .zip
|
|
is added. If the name already contains an extension other than
|
|
.IR .zip
|
|
the existing extension is kept unchanged.
|
|
.SH "OPTIONS"
|
|
.TP
|
|
.BI \-A
|
|
Adjust self-extracting executable archive.
|
|
A self-extracting executable archive is created by prepending
|
|
the SFX stub to an existing archive. The
|
|
.B \-A
|
|
option tells
|
|
.I zip
|
|
to adjust the entry offsets stored
|
|
in the archive to take into account this "preamble" data.
|
|
.TP
|
|
.BI \-b\ path
|
|
Use the specified
|
|
.I path
|
|
for the temporary
|
|
.I zip
|
|
archive. For example:
|
|
.RS
|
|
.IP
|
|
\fCzip -b /tmp stuff *\fP
|
|
.RE
|
|
.IP
|
|
will put the temporary
|
|
.I zip
|
|
archive in the directory
|
|
.IR /tmp ,
|
|
copying over
|
|
.I stuff.zip
|
|
to the current directory when done. This option is only 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 archive
|
|
at the same time.
|
|
.TP
|
|
.B \-c
|
|
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.
|
|
.TP
|
|
.B \-d
|
|
Remove (delete) entries from a
|
|
.I zip
|
|
archive.
|
|
For example:
|
|
.RS
|
|
.IP
|
|
\fCzip -d foo foo/tom/junk foo/harry/\\* \\*.o\fP
|
|
.RE
|
|
.IP
|
|
will remove the entry
|
|
.IR foo/tom/junk ,
|
|
all of the files that start with
|
|
.IR foo/harry/ ,
|
|
and all of the files that end with
|
|
.I \&.o
|
|
(in any path).
|
|
Note that shell pathname expansion has been inhibited with backslashes,
|
|
so that
|
|
.I zip
|
|
can see the asterisks,
|
|
enabling
|
|
.I zip
|
|
to match on the contents of the
|
|
.I zip
|
|
archive instead of the contents of the current directory.
|
|
.IP
|
|
Under MSDOS,
|
|
.B \-d
|
|
is case sensitive when it matches names in the
|
|
.I zip
|
|
archive.
|
|
This requires that file names be entered in upper case if they were
|
|
zipped by PKZIP on an MSDOS system.
|
|
.TP
|
|
.B \-D
|
|
Do not create entries in the
|
|
.I zip
|
|
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:
|
|
.RS
|
|
.IP
|
|
ZIPOPT="-D"; export ZIPOPT
|
|
.RE
|
|
.IP
|
|
(The variable ZIPOPT can be used for any option except
|
|
.B \-i
|
|
and
|
|
.B \-x
|
|
and can include several options.) The option
|
|
.B \-D
|
|
is a shorthand
|
|
for
|
|
.B \-x
|
|
"*/" but the latter cannot be set as default in the ZIPOPT environment
|
|
variable.
|
|
.TP
|
|
.B \-e
|
|
Encrypt the contents of the
|
|
.I zip
|
|
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
|
|
will exit with an error).
|
|
The password prompt is repeated to save the user from typing errors.
|
|
.TP
|
|
.B \-f
|
|
Replace (freshen) an existing entry in the
|
|
.I zip
|
|
archive only if it has been modified more recently than the
|
|
version already in the
|
|
.I zip
|
|
archive;
|
|
unlike the update option
|
|
.RB ( \-u )
|
|
this will not add files that are not already in the
|
|
.I zip
|
|
archive.
|
|
For example:
|
|
.RS
|
|
.IP
|
|
\fCzip -f foo\fP
|
|
.RE
|
|
.IP
|
|
This command should be run from the same directory from which the original
|
|
.I zip
|
|
command was run,
|
|
since paths stored in
|
|
.I zip
|
|
archives are always relative.
|
|
.IP
|
|
Note that the timezone environment variable TZ should be set according to
|
|
the local timezone in order for the
|
|
.B -f
|
|
,
|
|
.B -u
|
|
and
|
|
.B -o
|
|
options to work correctly.
|
|
.IP
|
|
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-1METDST'' (Middle European time with automatic
|
|
adjustment for ``summertime'' or Daylight Savings Time).
|
|
.TP
|
|
.B \-F
|
|
Fix the
|
|
.I zip
|
|
archive. This option can be used if some portions of the archive
|
|
are missing. It is not guaranteed to work, so you MUST make a backup
|
|
of the original archive first.
|
|
.IP
|
|
When doubled as in
|
|
.B \-FF
|
|
the compressed sizes given inside the damaged archive are not trusted
|
|
and zip scans for special signatures to identify the limits between
|
|
the archive members. The single
|
|
.B \-F
|
|
is more reliable if the archive is not too much damaged, for example
|
|
if it has only been truncated, so try this option first.
|
|
.IP
|
|
Neither option will recover archives that have been incorrectly
|
|
transferred in ascii mode instead of binary. After the repair, the
|
|
.B \-t
|
|
option of
|
|
.I unzip
|
|
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
|
|
option of
|
|
.I zip.
|
|
.TP
|
|
.B \-g
|
|
Grow (append to) the specified
|
|
.I zip
|
|
archive, instead of creating a new one. If this operation fails,
|
|
.I zip
|
|
attempts to restore the archive to its original state. If the restoration
|
|
fails, the archive might become corrupted.
|
|
.TP
|
|
.B \-h
|
|
Display the
|
|
.I zip
|
|
help information (this also appears if
|
|
.I zip
|
|
is run with no arguments).
|
|
.TP
|
|
.BI \-i\ files
|
|
Include only the specified files, as in:
|
|
.RS
|
|
.IP
|
|
\fCzip -r foo . -i \\*.c\fP
|
|
.RE
|
|
.IP
|
|
which will include only the files that end in
|
|
.IR \& .c
|
|
in the current directory and its subdirectories. (Note for PKZIP
|
|
users: the equivalent command is
|
|
.RS
|
|
.IP
|
|
\fCpkzip -rP foo *.c\fP
|
|
.RE
|
|
.IP
|
|
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
|
|
at all directory levels.
|
|
.TP
|
|
.B \-j
|
|
Store just the name of a saved file (junk the path), and do not store
|
|
directory names. By default,
|
|
.I zip
|
|
will store the full path (relative to the current path).
|
|
.TP
|
|
.B \-J
|
|
Strip any prepended data (e.g. a SFX stub) from the archive.
|
|
.TP
|
|
.B \-k
|
|
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.
|
|
.TP
|
|
.B \-l
|
|
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 ensure that
|
|
.I unzip -a
|
|
on Unix will get back an exact copy of the original file,
|
|
to undo the effect of
|
|
.I zip -l.
|
|
.TP
|
|
.B \-ll
|
|
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.
|
|
.TP
|
|
.B \-L
|
|
Display the
|
|
.I zip
|
|
license.
|
|
.TP
|
|
.B \-m
|
|
Move the specified files into the
|
|
.I zip
|
|
archive; actually,
|
|
this deletes the target directories/files after making the specified
|
|
.I zip
|
|
archive. If a directory becomes empty after removal of the files, the
|
|
directory is also removed. No deletions are done until
|
|
.I zip
|
|
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
|
|
to test the archive before removing all input files.
|
|
.TP
|
|
.BI \-n\ suffixes
|
|
Do not attempt to compress files named with the given
|
|
.I suffixes.
|
|
Such files are simply stored (0% compression) in the output zip file,
|
|
so that
|
|
.I zip
|
|
doesn't waste its time trying to compress them.
|
|
The suffixes are separated by
|
|
either colons or semicolons. For example:
|
|
.RS
|
|
.IP
|
|
\fCzip -rn .Z:.zip:.tiff:.gif:.snd foo foo\fP
|
|
.RE
|
|
.IP
|
|
will copy everything from
|
|
.I foo
|
|
into
|
|
.IR foo.zip ,
|
|
but will store any files that end in
|
|
.IR .Z ,
|
|
.IR .zip ,
|
|
.IR .tiff ,
|
|
.IR .gif ,
|
|
or
|
|
.I .snd
|
|
without trying to compress them
|
|
(image and sound files often have their own specialized compression methods).
|
|
By default,
|
|
.I zip
|
|
does not compress files with extensions in the list
|
|
.I .Z:.zip:.zoo:.arc:.lzh:.arj.
|
|
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:
|
|
.RS
|
|
.IP
|
|
setenv ZIPOPT "-n .gif:.zip"
|
|
.RE
|
|
.IP
|
|
To attempt compression on all files, use:
|
|
.RS
|
|
.IP
|
|
zip -n : foo
|
|
.RE
|
|
.IP
|
|
The maximum compression option
|
|
.B \-9
|
|
also attempts compression on all files regardless of extension.
|
|
.TP
|
|
.B \-o
|
|
Set the "last modified" time of the
|
|
.I zip
|
|
archive to the latest (oldest) "last modified" time
|
|
found among the entries in the
|
|
.I zip
|
|
archive.
|
|
This can be used without any other operations, if desired.
|
|
For example:
|
|
.IP
|
|
\fCzip -o foo\fP
|
|
.IP
|
|
will change the last modified time of
|
|
.I foo.zip
|
|
to the latest time of the entries in
|
|
.IR foo.zip .
|
|
.TP
|
|
.B \-q
|
|
Quiet mode;
|
|
eliminate informational messages and comment prompts.
|
|
(Useful, for example, in shell scripts and background tasks).
|
|
.TP
|
|
.B \-r
|
|
Travel the directory structure recursively;
|
|
for example:
|
|
.RS
|
|
.IP
|
|
\fCzip -r foo foo\fP
|
|
.RE
|
|
.IP
|
|
In this case, all the files and directories in
|
|
.I foo
|
|
are saved in a
|
|
.I zip
|
|
archive named
|
|
.IR foo.zip ,
|
|
including files with names starting with ".",
|
|
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
|
|
.I foo
|
|
and its subdirectories, use the
|
|
.B \-i
|
|
option to specify the pattern of files to be included.
|
|
You should not use
|
|
.B \-r
|
|
with the name ".*",
|
|
since that matches ".."
|
|
which will attempt to zip up the parent directory
|
|
(probably not what was intended).
|
|
.TP
|
|
.B \-S
|
|
Include system and hidden files. This option is
|
|
effective on some systems only; it is ignored on Unix.
|
|
.TP
|
|
.BI \-t\ mmddyy
|
|
Do not operate on files modified prior to the specified date,
|
|
where
|
|
.I mm
|
|
is the month (0-12),
|
|
.I dd
|
|
is the day of the month (1-31),
|
|
and
|
|
.I yy
|
|
are the last two digits of the year.
|
|
For example:
|
|
.RS
|
|
.IP
|
|
\fCzip -rt 120791 infamy foo\fP
|
|
.RE
|
|
.IP
|
|
will add all the files in
|
|
.I foo
|
|
and its subdirectories that were last modified on or after 7 December 1991,
|
|
to the
|
|
.I zip
|
|
archive
|
|
.IR infamy.zip .
|
|
.TP
|
|
.B \-T
|
|
Test the integrity of the new zip file. If the check fails, the old zip file
|
|
is unchanged and (with the
|
|
.B -m
|
|
option) not input files are removed.
|
|
.TP
|
|
.B \-u
|
|
Replace (update) an existing entry in the
|
|
.I zip
|
|
archive only if it has been modified more recently
|
|
than the version already in the
|
|
.I zip
|
|
archive.
|
|
For example:
|
|
.RS
|
|
.IP
|
|
\fCzip -u stuff *\fP
|
|
.RE
|
|
.IP
|
|
will add any new files in the current directory,
|
|
and update any files which have been modified since the
|
|
.I zip
|
|
archive
|
|
.I stuff.zip
|
|
was last created/modified (note that
|
|
.I zip
|
|
will not try to pack
|
|
.I stuff.zip
|
|
into itself when you do this).
|
|
.IP
|
|
Note that the
|
|
.B \-u
|
|
option with no arguments acts like the
|
|
.B \-f
|
|
(freshen) option.
|
|
.TP
|
|
.B \-v
|
|
Verbose mode or print diagnostic version info.
|
|
.IP
|
|
Normally, when applied to real operations, this option enables the display of a
|
|
progress indicator during compression and requests verbose diagnostic
|
|
info about zipfile structure oddities.
|
|
.IP
|
|
When
|
|
.B \-v
|
|
is the only command line argument, and stdout is not redirected to a file,
|
|
a diagnostic screen is printed. In addition to the help screen header
|
|
with program name, version, and release date, some pointers to the Info-ZIP
|
|
home and distribution sites are given. Then, it 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
|
|
executable.
|
|
.TP
|
|
.B \-V
|
|
Save VMS file attributes. This option is available on VMS only;
|
|
.I zip
|
|
archives created with this option will generally not be usable
|
|
on other systems.
|
|
.TP
|
|
.B \-w
|
|
Append the version number of the files to the name,
|
|
including multiple versions of files.
|
|
(VMS only; default:
|
|
use only the most recent version of a specified file).
|
|
.TP
|
|
.BI \-x\ files
|
|
Explicitly exclude the specified files, as in:
|
|
.RS
|
|
.IP
|
|
\fCzip -r foo foo -x \\*.o\fP
|
|
.RE
|
|
.IP
|
|
which will include the contents of
|
|
.I foo
|
|
in
|
|
.I foo.zip
|
|
while excluding all the files that end in
|
|
.IR \& .o .
|
|
The backslash avoids the shell filename substitution, so that the
|
|
name matching is performed by
|
|
.I zip
|
|
at all directory levels.
|
|
.TP
|
|
.B \-X
|
|
Do not save extra file attributes (Extended Attributes on OS/2, uid/gid
|
|
and file times on Unix).
|
|
.TP
|
|
.B \-y
|
|
Store symbolic links as such in the
|
|
.I zip
|
|
archive,
|
|
instead of compressing and storing the file referred to by the link
|
|
(UNIX only).
|
|
.TP
|
|
.B \-z
|
|
Prompt for a multi-line comment for the entire
|
|
.I zip
|
|
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 VAX/VMS).
|
|
The comment can be taken from a file:
|
|
.RS
|
|
.IP
|
|
\fCzip -z foo < foowhat\fP
|
|
.RE
|
|
.TP
|
|
.BI \-#
|
|
Regulate the speed of compression using the specified digit
|
|
.IR # ,
|
|
where
|
|
.B \-0
|
|
indicates no compression (store all files),
|
|
.B \-1
|
|
indicates the fastest compression method (less compression)
|
|
and
|
|
.B \-9
|
|
indicates the slowest compression method (optimal compression, ignores
|
|
the suffix list). The default compression level is
|
|
.BR \-6.
|
|
.TP
|
|
.B \-@
|
|
Take the list of input files from standard input. File names containing
|
|
spaces must be quoted using single quotes, as in 'file name'.
|
|
.TP
|
|
.B \-$
|
|
Include the volume label for the 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:
|
|
.RS
|
|
.IP
|
|
\fCzip -$ foo a: c:bar\fP
|
|
.RE
|
|
.IP
|
|
This option is effective on some systems only (MSDOS and OS/2); it is
|
|
ignored on Unix.
|
|
.SH "EXAMPLES"
|
|
The simplest example:
|
|
.IP
|
|
\fCzip stuff *\fP
|
|
.LP
|
|
creates the archive
|
|
.I stuff.zip
|
|
(assuming it does not exist)
|
|
and puts all the files in the current directory in it, in compressed form
|
|
(the
|
|
.I \&.zip
|
|
suffix is added automatically,
|
|
unless that archive name given contains a dot already;
|
|
this allows the explicit specification of other suffixes).
|
|
.LP
|
|
Because of the way the shell does filename substitution,
|
|
files starting with "." are not included;
|
|
to include these as well:
|
|
.IP
|
|
\fCzip stuff .* *\fP
|
|
.LP
|
|
Even this will not include any subdirectories from the current directory.
|
|
.LP
|
|
To zip up an entire directory, the command:
|
|
.IP
|
|
\fCzip -r foo foo\fP
|
|
.LP
|
|
creates the archive
|
|
.IR foo.zip ,
|
|
containing all the files and directories in the directory
|
|
.I foo
|
|
that is contained within the current directory.
|
|
.LP
|
|
You may want to make a
|
|
.I zip
|
|
archive that contains the files in
|
|
.IR foo ,
|
|
without recording the directory name,
|
|
.IR foo .
|
|
You can use the
|
|
.B \-j
|
|
option to leave off the paths,
|
|
as in:
|
|
.IP
|
|
\fCzip -j foo foo/*\fP
|
|
.LP
|
|
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
|
|
archive.
|
|
In this case, you can create the archive in steps using the
|
|
.B \-m
|
|
option.
|
|
If
|
|
.I foo
|
|
contains the subdirectories
|
|
.IR tom ,
|
|
.IR dick ,
|
|
and
|
|
.IR harry ,
|
|
you can:
|
|
.IP
|
|
\fCzip -rm foo foo/tom\fP
|
|
.br
|
|
\fCzip -rm foo foo/dick\fP
|
|
.br
|
|
\fCzip -rm foo foo/harry\fP
|
|
.LP
|
|
where the first command creates
|
|
.IR foo.zip ,
|
|
and the next two add to it.
|
|
At the completion of each
|
|
.I zip
|
|
command,
|
|
the last created archive is deleted,
|
|
making room for the next
|
|
.I zip
|
|
command to function.
|
|
.SH "PATTERN MATCHING"
|
|
This section applies only to UNIX.
|
|
Watch this space for details on MSDOS and VMS operation.
|
|
.LP
|
|
The UNIX shells
|
|
.RI ( sh (1)
|
|
and
|
|
.IR csh (1))
|
|
do filename substitution on command arguments.
|
|
The special characters are:
|
|
.TP
|
|
.B ?
|
|
match any single character
|
|
.TP
|
|
.B *
|
|
match any number of characters (including none)
|
|
.TP
|
|
.B []
|
|
match any character in the range indicated within the brackets
|
|
(example: [a\-f], [0\-9]).
|
|
.LP
|
|
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.
|
|
.LP
|
|
The
|
|
.I zip
|
|
program can do the same matching on names that are in the
|
|
.I zip
|
|
archive being modified or,
|
|
in the case of the
|
|
.B \-x
|
|
(exclude) or
|
|
.B \-i
|
|
(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
|
|
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
|
|
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
|
|
option, or does not match any name given with the
|
|
.B \-i
|
|
option.
|
|
.LP
|
|
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 ("").
|
|
.LP
|
|
In general, use backslash to make
|
|
.I zip
|
|
do the pattern matching with the
|
|
.B \-f
|
|
(freshen) and
|
|
.B \-d
|
|
(delete) options,
|
|
and sometimes after the
|
|
.B \-x
|
|
(exclude) option when used with an appropriate operation (add,
|
|
.BR \-u ,
|
|
.BR \-f ,
|
|
or
|
|
.BR \-d ).
|
|
.SH "SEE ALSO"
|
|
compress(1),
|
|
shar(1L),
|
|
tar(1),
|
|
unzip(1L),
|
|
gzip(1L)
|
|
.SH BUGS
|
|
.I zip
|
|
2.1 is not compatible with PKUNZIP 1.10. Use
|
|
.I zip
|
|
1.1 to produce
|
|
.I zip
|
|
files which can be extracted by PKUNZIP 1.10.
|
|
.PP
|
|
.I zip
|
|
files produced by
|
|
.I zip
|
|
2.1 must not be
|
|
.I updated
|
|
by
|
|
.I zip
|
|
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
|
|
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.
|
|
.LP
|
|
Under VMS,
|
|
not all of the odd file formats are treated properly.
|
|
Only stream-LF format
|
|
.I zip
|
|
files are expected to work with
|
|
.IR zip .
|
|
Others can be converted using Rahul Dhesi's BILF program.
|
|
This version of
|
|
.I zip
|
|
handles some of the conversion internally.
|
|
When using Kermit to transfer zip files from Vax to MSDOS, type "set
|
|
file type block" on the Vax. When transfering from MSDOS to Vax, type
|
|
"set file type fixed" on the Vax. In both cases, type "set file type
|
|
binary" on MSDOS.
|
|
.LP
|
|
Under VMS, zip hangs for file specification that uses DECnet syntax
|
|
.I foo::*.*.
|
|
.LP
|
|
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.
|
|
.LP
|
|
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
|
|
(which uses this 32-bit-mode size) differs from that reported by DIR.
|
|
.I zip
|
|
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.
|
|
.LP
|
|
On the Amiga, the
|
|
.B -A
|
|
option currently does not work.
|
|
.SH AUTHORS
|
|
Copyright (C) 1990-1996 Mark Adler, Richard B. Wales, Jean-loup Gailly,
|
|
Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush and
|
|
Paul Kienitz.
|
|
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.
|
|
.LP
|
|
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.
|
|
.LP
|
|
Please send bug reports and comments by email to:
|
|
.IR zip\-bugs@wkuvx1.wku.edu.
|
|
For bug reports, please include the version of
|
|
.IR zip
|
|
(see
|
|
.IR zip \-h
|
|
),
|
|
the make options used to compile it see
|
|
.IR zip \-v
|
|
),
|
|
the machine and operating system in use,
|
|
and as much additional information as possible.
|
|
.SH ACKNOWLEDGEMENTS
|
|
Thanks to R. P. Byrne for his
|
|
.I Shrink.Pas
|
|
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
|
|
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
|
|
site for the INFO-ZIP group to use; and most importantly, to the
|
|
INFO-ZIP group itself (listed in the file
|
|
.IR infozip.who )
|
|
without whose tireless testing and bug-fixing efforts a portable
|
|
.I zip
|
|
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.
|
|
.\" end of file
|