📄 unzip_man.txt
字号:
-: [all but Acorn, VM/CMS, MVS, Tandem] allows to
extract archive members into locations outside of
the current `` extraction root folder''. For secu-
rity reasons, unzip normally removes ``parent dir''
path components (``../'') from the names of
extracted file. This safety feature (new for ver-
sion 5.50) prevents unzip from accidentally writing
files to ``sensitive'' areas outside the active
extraction folder tree head. The -: option lets
unzip switch back to its previous, more liberal
behaviour, to allow exact extraction of (older)
archives that used ``../'' components to create
multiple directory trees at the level of the cur-
rent extraction folder. This option does not
enable writing explicitly to the root directory
(``/''). To achieve this, it is necessary to set
the extraction target folder to root (e.g. -d / ).
However, when the -: option is specified, it is
still possible to implicitly write to the root
directory by specifiying enough ``../'' path compo-
nents within the zip archive. Use this option with
extreme caution.
ENVIRONMENT OPTIONS
unzip's default behavior may be modified via options
placed in an environment variable. This can be done with
any option, but it is probably most useful with the -a,
-L, -C, -q, -o, or -n modifiers: make unzip auto-convert
text files by default, make it convert filenames from
uppercase systems to lowercase, make it match names case-
insensitively, make it quieter, or make it always over-
write or never overwrite files as it extracts them. For
example, to make unzip act as quietly as possible, only
reporting errors, one would use one of the following com-
mands:
Unix Bourne shell:
UNZIP=-qq; export UNZIP
Unix C shell:
setenv UNZIP -qq
OS/2 or MS-DOS:
set UNZIP=-qq
VMS (quotes for lowercase):
define UNZIP_OPTS ""-qq""
Info-ZIP 28 February 2005 (v5.52) 10
UNZIP(1L) UNZIP(1L)
Environment options are, in effect, considered to be just
like any other command-line options, except that they are
effectively the first options on the command line. To
override an environment option, one may use the ``minus
operator'' to remove it. For instance, to override one of
the quiet-flags in the example above, use the command
unzip --q[other options] zipfile
The first hyphen is the normal switch character, and the
second is a minus sign, acting on the q option. Thus the
effect here is to cancel one quantum of quietness. To
cancel both quiet flags, two (or more) minuses may be
used:
unzip -t--q zipfile
unzip ---qt zipfile
(the two are equivalent). This may seem awkward or con-
fusing, but it is reasonably intuitive: just ignore the
first hyphen and go from there. It is also consistent
with the behavior of Unix nice(1).
As suggested by the examples above, the default variable
names are UNZIP_OPTS for VMS (where the symbol used to
install unzip as a foreign command would otherwise be con-
fused with the environment variable), and UNZIP for all
other operating systems. For compatibility with zip(1L),
UNZIPOPT is also accepted (don't ask). If both UNZIP and
UNZIPOPT are defined, however, UNZIP takes precedence.
unzip's diagnostic option (-v with no zipfile name) can be
used to check the values of all four possible unzip and
zipinfo environment variables.
The timezone variable (TZ) should be set according to the
local timezone in order for the -f and -u to operate cor-
rectly. See the description of -f above for details.
This variable may also be necessary to get timestamps of
extracted files to be set correctly. The WIN32
(Win9x/ME/NT4/2K/XP/2K3) port of unzip gets the timezone
configuration from the registry, assuming it is correctly
set in the Control Panel. The TZ variable is ignored for
this port.
DECRYPTION
Encrypted archives are fully supported by Info-ZIP soft-
ware, but due to United States export restrictions,
de-/encryption support might be disabled in your compiled
binary. However, since spring 2000, US export restric-
tions have been liberated, and our source archives do now
include full crypt code. In case you need binary distri-
butions with crypt support enabled, see the file ``WHERE''
in any Info-ZIP source or binary distribution for loca-
tions both inside and outside the US.
Info-ZIP 28 February 2005 (v5.52) 11
UNZIP(1L) UNZIP(1L)
Some compiled versions of unzip may not support decryp-
tion. To check a version for crypt support, either
attempt to test or extract an encrypted archive, or else
check unzip's diagnostic screen (see the -v option above)
for ``[decryption]'' as one of the special compilation
options.
As noted above, the -P option may be used to supply a
password on the command line, but at a cost in security.
The preferred decryption method is simply to extract nor-
mally; if a zipfile member is encrypted, unzip will prompt
for the password without echoing what is typed. unzip
continues to use the same password as long as it appears
to be valid, by testing a 12-byte header on each file.
The correct password will always check out against the
header, but there is a 1-in-256 chance that an incorrect
password will as well. (This is a security feature of the
PKWARE zipfile format; it helps prevent brute-force
attacks that might otherwise gain a large speed advantage
by testing only the header.) In the case that an incor-
rect password is given but it passes the header test any-
way, either an incorrect CRC will be generated for the
extracted data or else unzip will fail during the extrac-
tion because the ``decrypted'' bytes do not constitute a
valid compressed data stream.
If the first password fails the header check on some file,
unzip will prompt for another password, and so on until
all files are extracted. If a password is not known,
entering a null password (that is, just a carriage return
or ``Enter'') is taken as a signal to skip all further
prompting. Only unencrypted files in the archive(s) will
thereafter be extracted. (In fact, that's not quite true;
older versions of zip(1L) and zipcloak(1L) allowed null
passwords, so unzip checks each encrypted file to see if
the null password works. This may result in ``false posi-
tives'' and extraction errors, as noted above.)
Archives encrypted with 8-bit passwords (for example,
passwords with accented European characters) may not be
portable across systems and/or other archivers. This
problem stems from the use of multiple encoding methods
for such characters, including Latin-1 (ISO 8859-1) and
OEM code page 850. DOS PKZIP 2.04g uses the OEM code
page; Windows PKZIP 2.50 uses Latin-1 (and is therefore
incompatible with DOS PKZIP); Info-ZIP uses the OEM code
page on DOS, OS/2 and Win3.x ports but Latin-1 everywhere
else; and Nico Mak's WinZip 6.x does not allow 8-bit pass-
words at all. UnZip 5.3 (or newer) attempts to use the
default character set first (e.g., Latin-1), followed by
the alternate one (e.g., OEM code page) to test passwords.
On EBCDIC systems, if both of these fail, EBCDIC encoding
will be tested as a last resort. (EBCDIC is not tested on
non-EBCDIC systems, because there are no known archivers
Info-ZIP 28 February 2005 (v5.52) 12
UNZIP(1L) UNZIP(1L)
that encrypt using EBCDIC encoding.) ISO character encod-
ings other than Latin-1 are not supported.
EXAMPLES
To use unzip to extract all members of the archive let-
ters.zip into the current directory and subdirectories
below it, creating any subdirectories as necessary:
unzip letters
To extract all members of letters.zip into the current
directory only:
unzip -j letters
To test letters.zip, printing only a summary message indi-
cating whether the archive is OK or not:
unzip -tq letters
To test all zipfiles in the current directory, printing
only the summaries:
unzip -tq \*.zip
(The backslash before the asterisk is only required if the
shell expands wildcards, as in Unix; double quotes could
have been used instead, as in the source examples
below.) To extract to standard output all members of let-
ters.zip whose names end in .tex, auto-converting to the
local end-of-line convention and piping the output into
more(1):
unzip -ca letters \*.tex | more
To extract the binary file paper1.dvi to standard output
and pipe it to a printing program:
unzip -p articles paper1.dvi | dvips
To extract all FORTRAN and C source files--*.f, *.c, *.h,
and Makefile--into the /tmp directory:
unzip source.zip "*.[fch]" Makefile -d /tmp
(the double quotes are necessary only in Unix and only if
globbing is turned on). To extract all FORTRAN and C
source files, regardless of case (e.g., both *.c and *.C,
and any makefile, Makefile, MAKEFILE or similar):
unzip -C source.zip "*.[fch]" makefile -d /tmp
To extract any such files but convert any uppercase MS-DOS
or VMS names to lowercase and convert the line-endings of
Info-ZIP 28 February 2005 (v5.52) 13
UNZIP(1L) UNZIP(1L)
all of the files to the local standard (without respect to
any files that might be marked ``binary''):
unzip -aaCL source.zip "*.[fch]" makefile -d /tmp
To extract only newer versions of the files already in the
current directory, without querying (NOTE: be careful of
unzipping in one timezone a zipfile created in
another--ZIP archives other than those created by Zip 2.1
or later contain no timezone information, and a ``newer''
file from an eastern timezone may, in fact, be older):
unzip -fo sources
To extract newer versions of the files already in the cur-
rent directory and to create any files not already there
(same caveat as previous example):
unzip -uo sources
To display a diagnostic screen showing which unzip and
zipinfo options are stored in environment variables,
whether decryption support was compiled in, the compiler
with which unzip was compiled, etc.:
unzip -v
In the last five examples, assume that UNZIP or UNZIP_OPTS
is set to -q. To do a singly quiet listing:
unzip -l file.zip
To do a doubly quiet listing:
unzip -ql file.zip
(Note that the ``.zip'' is generally not necessary.) To
do a standard listing:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -