.\" Copyright (c) 1990-2005 Info-ZIP. All rights reserved. .\" .\" See the accompanying file LICENSE, version 2000-Apr-09 or later .\" (the contents of which are also included in unzip.h) for terms of use. .\" If, for some reason, all these files are missing, the Info-ZIP license .\" also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html .\" .\" funzip.1 by Greg Roelofs and others. .\" .\" ========================================================================= .\" define .EX/.EE (for multiline user-command examples; normal Courier font) .de EX .in +4n .nf .ft CW .. .de EE .ft R .fi .in -4n .. .\" ========================================================================= .TH FUNZIP 1L "28 February 2005 (v3.94)" "Info-ZIP" .SH NAME funzip \- filter for extracting from a ZIP archive in a pipe .PD .SH SYNOPSIS \fBfunzip\fP [\fB\-password\fP] [\fIinput[.zip|.gz]\fP] .\" ========================================================================= .SH ARGUMENTS .IP [\fI\-password\fP] Optional password to be used if ZIP archive is encrypted. Decryption may not be supported at some sites. See DESCRIPTION for more details. .IP [\fIinput[.zip|.gz]\fP] Optional input archive file specification. See DESCRIPTION for details. .PD .\" ========================================================================= .SH DESCRIPTION .I funzip without a file argument acts as a filter; that is, it assumes that a ZIP archive (or a \fIgzip\fP'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, .I 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. .PP A password for encrypted zip files can be specified on the command line (preceding the file name, if any) by prefixing the password with a dash. Note that this constitutes a security risk on many systems; currently running processes are often visible via simple commands (e.g., \fIps\fP(1) under Unix), and command-line histories can be read. If the first entry of the zip file is encrypted and no password is specified on the command line, then the user is prompted for a password and the password is not echoed on the console. .PP Given the limitation on single-member extraction, \fIfunzip\fP is most useful in conjunction with a secondary archiver program such as \fItar\fP(1). The following section includes an example illustrating this usage in the case of disk backups to tape. .PD .\" ========================================================================= .SH EXAMPLES To use \fIfunzip\fP to extract the first member file of the archive test.zip and to pipe it into \fImore\fP(1): .PP .EX funzip test.zip | more .EE .PP To use \fIfunzip\fP to test the first member file of test.zip (any errors will be reported on standard error): .PP .EX funzip test.zip > /dev/null .EE .PP To use \fIzip\fP and \fIfunzip\fP in place of \fIcompress\fP(1) and \fIzcat\fP(1) (or \fIgzip\fP(1L) and \fIgzcat\fP(1L)) for tape backups: .PP .EX tar cf \- . | zip \-7 | dd of=/dev/nrst0 obs=8k dd if=/dev/nrst0 ibs=8k | funzip | tar xf \- .EE .PP (where, for example, nrst0 is a SCSI tape drive). .PD .\" ========================================================================= .SH BUGS When piping an encrypted file into \fImore\fP and allowing \fIfunzip\fP 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; \fIfunzip\fP changes the terminal mode to non-echo before \fImore\fP reads its state, and \fImore\fP then ``restores'' the terminal to this mode before exiting. To recover, run \fIfunzip\fP on the same file but redirect to /dev/null rather than piping into more; after prompting again for the password, \fIfunzip\fP will reset the terminal properly. .PP 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 directory, \fIfunzip\fP simply creates the directory and exits. .PP The functionality of \fIfunzip\fP should be incorporated into \fIunzip\fP itself (future release). .PD .\" ========================================================================= .SH "SEE ALSO" \fIgzip\fP(1L), \fIunzip\fP(1L), \fIunzipsfx\fP(1L), \fIzip\fP(1L), \fIzipcloak\fP(1L), \fIzipinfo\fP(1L), \fIzipnote\fP(1L), \fIzipsplit\fP(1L) .PD .\" ========================================================================= .SH URL The Info-ZIP home page is currently at .EX \fChttp://www.info-zip.org/pub/infozip/\fR .EE or .EX \fCftp://ftp.info-zip.org/pub/infozip/\fR . .EE .PD .\" ========================================================================= .SH AUTHOR Mark Adler (Info-ZIP)