FUNZIP(1L)FUNZIP(1L)NAMEfunzip - filter for extracting from a ZIP archive in a
pipe
SYNOPSISfunzip [-password] [input[.zip|.gz]]
ARGUMENTS
[-password]
Optional password to be used if ZIP archive is
encrypted. Decryption may not be supported at some
sites. See DESCRIPTION for more details.
[input[.zip|.gz]]
Optional input archive file specification. See
DESCRIPTION for details.
DESCRIPTIONfunzip without a file argument acts as a filter; that is,
it assumes that a ZIP archive (or a gzip'd(1) file) is
being piped into standard input, and it extracts the first
member from the archive to stdout. When stdin comes from
a tty device, funzip assumes that this cannot be a stream
of (binary) compressed data and shows a short help text,
instead. If there is a file argument, then input is read
from the specified file instead of from stdin.
A password for encrypted zip files can be specified on the
command line (preceding the file name, if any) by prefix-
ing the password with a dash. Note that this constitutes
a security risk on many systems; currently running pro-
cesses are often visible via simple commands (e.g., ps(1)
under Unix), and command-line histories can be read. If
the first entry of the zip file is encrypted and no pass-
word is specified on the command line, then the user is
prompted for a password and the password is not echoed on
the console.
Given the limitation on single-member extraction, funzip
is most useful in conjunction with a secondary archiver
program such as tar(1). The following section includes an
example illustrating this usage in the case of disk back-
ups to tape.
EXAMPLES
To use funzip to extract the first member file of the
archive test.zip and to pipe it into more(1):
funzip test.zip | more
To use funzip to test the first member file of test.zip
(any errors will be reported on standard error):
funzip test.zip > /dev/null
To use zip and funzip in place of compress(1) and zcat(1)
(or gzip(1L) and gzcat(1L)) for tape backups:
tar cf - . | zip -7 | dd of=/dev/nrst0 obs=8k
dd if=/dev/nrst0 ibs=8k | funzip | tar xf -
(where, for example, nrst0 is a SCSI tape drive).
BUGS
When piping an encrypted file into more and allowing fun-
zip to prompt for password, the terminal may sometimes be
reset to a non-echo mode. This is apparently due to a
race condition between the two programs; funzip changes
the terminal mode to non-echo before more reads its state,
and more then ``restores'' the terminal to this mode
before exiting. To recover, run funzip on the same file
but redirect to /dev/null rather than piping into more;
after prompting again for the password, funzip will reset
the terminal properly.
There is presently no way to extract any member but the
first from a ZIP archive. This would be useful in the
case where a ZIP archive is included within another
archive. In the case where the first member is a direc-
tory, funzip simply creates the directory and exits.
The functionality of funzip should be incorporated into
unzip itself (future release).
SEE ALSOgzip(1L), unzip(1L), unzipsfx(1L), zip(1L), zipcloak(1L),
zipinfo(1L), zipnote(1L), zipsplit(1L)URL
The Info-ZIP home page is currently at
http://www.info-zip.org/pub/infozip/
or
ftp://ftp.info-zip.org/pub/infozip/ .
AUTHOR
Mark Adler (Info-ZIP)
Info-ZIP 17 February 2002 (v3.94) FUNZIP(1L)