


     FFFFUUUUNNNNZZZZIIIIPPPP((((1111))))	       XXXXEEEENNNNIIIIXXXX 3333....0000 ((((22228888 AAAAuuuugggg 99994444 ((((vvvv3333....88883333))))))))	     FFFFUUUUNNNNZZZZIIIIPPPP((((1111))))



     NNNNAAAAMMMMEEEE
	  funzip - filter for extracting from a	ZIP archive in a pipe

     SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
	  [...]	 |  ffffuuuunnnnzzzziiiipppp [----ppppaaaasssssssswwwwoooorrrrdddd]	|  [...]

	  ffffuuuunnnnzzzziiiipppp [----ppppaaaasssssssswwwwoooorrrrdddd] _i_n_p_u_t._z_i_p	|  [...]

     AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
	  [-_p_a_s_s_w_o_r_d]
	       Optional	password to be used if ZIP archive is
	       encrypted.  Decryption may not be supported at some
	       sites.  See DESCRIPTION for more	details.

     DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
	  _f_u_n_z_i_p acts as a filter; that	is, it assumes that a ZIP
	  archive 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 security risk	on many	systems;
	  currently running processes are often	visible	via simple
	  commands (e.g., _p_s(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, _f_u_n_z_i_p is
	  most useful in conjunction with a secondary archiver program
	  such as _t_a_r(1).  The following section includes an example
	  illustrating this usage in the case of disk backups to tape.

     EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
	  To use _f_u_n_z_i_p	to extract the first member file of the
	  archive test.zip and to pipe it into _m_o_r_e(1):

	      funzip test.zip |	more

	  To use _f_u_n_z_i_p	to test	the first member file of test.zip (any
	  errors will be reported on standard error):

	      funzip test.zip >	/dev/null

	  To use _z_i_p and _f_u_n_z_i_p	in place of _c_o_m_p_r_e_s_s(1)	and _z_c_a_t(1)
	  (or _g_z_i_p(1L) and _g_z_c_a_t(1L)) for tape backups:

	      tar cf - . | zip -7 | dd of=/dev/nrst0 obs=8k
	      dd if=/dev/nrst0 ibs=8k |	funzip | tar xf	-




     Page 1					     (printed 3/25/95)






     FFFFUUUUNNNNZZZZIIIIPPPP((((1111))))	       XXXXEEEENNNNIIIIXXXX 3333....0000 ((((22228888 AAAAuuuugggg 99994444 ((((vvvv3333....88883333))))))))	     FFFFUUUUNNNNZZZZIIIIPPPP((((1111))))



	  (where, for example, nrst0 is	a SCSI tape drive).

     BBBBUUUUGGGGSSSS
	  When piping an encrypted file	into _m_o_r_e and allowing _f_u_n_z_i_p
	  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; _f_u_n_z_i_p changes the
	  terminal mode	to non-echo before _m_o_r_e	reads its state, and
	  _m_o_r_e then ``restores'' the terminal to this mode before
	  exiting.  To recover,	run _f_u_n_z_i_p on the same file but
	  redirect to /dev/null	rather than piping into	more; after
	  prompting again for the password, _f_u_n_z_i_p 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 directory, _f_u_n_z_i_p
	  simply creates the directory and exits.

	  The functionality of _f_u_n_z_i_p should be	incorporated into
	  _u_n_z_i_p	itself (future release).

     SSSSEEEEEEEE AAAALLLLSSSSOOOO
	  _g_z_i_p(1L), _u_n_z_i_p(1L), _u_n_z_i_p_s_f_x(1L), _z_i_p(1L), _z_i_p_c_l_o_a_k(1L),
	  _z_i_p_i_n_f_o(1L), _z_i_p_n_o_t_e(1L), _z_i_p_s_p_l_i_t(1L)

     AAAAUUUUTTTTHHHHOOOORRRR
	  Mark Adler (Info-ZIP)


























     Page 2					     (printed 3/25/95)



