
FUNZIP(1L)                                             FUNZIP(1L)

NAME
       funzip  -  filter  for  extracting from a ZIP archive in a
       pipe

SYNOPSIS
       [...]  |  funzip [-password]  |  [...]

       funzip [-password] input.zip  |  [...]  funzip [-password]
       input.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.

DESCRIPTION
       funzip  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.  If there is an argument, then the input  comes
       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 prefixing the
       password with a dash.  Note that this constitutes a  secu-
       rity risk on many systems; currently running processes 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  password
       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

Info-ZIP             14 January 2001 (v3.93)                    1

FUNZIP(1L)                                             FUNZIP(1L)

           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 ALSO
       gzip(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             14 January 2001 (v3.93)                    2

