Provided by: unzip_6.0-26ubuntu3.2_amd64 bug

NAME

       unzipsfx - self-extracting stub for prepending to ZIP archives

SYNOPSIS

       <name of unzipsfx+archive combo> [-cfptuz[ajnoqsCLV$]] [file(s) ... [-x xfile(s) ...]]

DESCRIPTION

       unzipsfx  is a modified version of unzip(1) designed to be prepended to existing ZIP archives in order to
       form self-extracting archives.  Instead of taking its first non-flag argument to be the zipfile(s) to  be
       extracted,  unzipsfx  seeks  itself  under  the  name  by  which it was invoked and tests or extracts the
       contents of the appended archive.  Because the executable stub  adds  bulk  to  the  archive  (the  whole
       purpose of which is to be as small as possible), a number of the less-vital capabilities in regular unzip
       have  been removed.  Among these are the usage (or help) screen, the listing and diagnostic functions (-l
       and -v), the ability to decompress older compression formats (the ``reduce,'' ``shrink'' and  ``implode''
       methods).  The ability to extract to a directory other than the current one can be selected as a compile-
       time  option,  which  is  now  enabled  by  default since UnZipSFX version 5.5.  Similarly, decryption is
       supported as a compile-time option but should be avoided unless the attached archive  contains  encrypted
       files.  Starting  with  release  5.5,  another  compile-time  option  adds  a  simple ``run command after
       extraction'' feature.  This feature is currently incompatible with the ``extract to different directory''
       feature and remains disabled by default.

       Note that self-extracting archives made with unzipsfx are no more (or  less)  portable  across  different
       operating  systems  than  is the unzip executable itself.  In general a self-extracting archive made on a
       particular Unix system, for example, will only self-extract under the same flavor of Unix.  Regular unzip
       may still be used to extract the embedded archive as with any normal zipfile, although it will generate a
       harmless warning about extra bytes at the beginning of the zipfile.  Despite  this,  however,  the  self-
       extracting  archive  is technically not a valid ZIP archive, and PKUNZIP may be unable to test or extract
       it.  This limitation is due to the simplistic manner in  which  the  archive  is  created;  the  internal
       directory structure is not updated to reflect the extra bytes prepended to the original zipfile.

ARGUMENTS

       [file(s)]
              An  optional  list of archive members to be processed.  Regular expressions (wildcards) similar to
              those in Unix egrep(1) may be used to match multiple members.  These wildcards may contain:

              *      matches a sequence of 0 or more characters

              ?      matches exactly 1 character

              [...]  matches any single character found inside the brackets; ranges are specified by a beginning
                     character, a hyphen, and an ending character.  If an exclamation point or a caret  (`!'  or
                     `^')  follows  the  left  bracket,  then  the  range  of  characters within the brackets is
                     complemented (that is, anything except the characters inside the brackets is  considered  a
                     match).

              (Be  sure  to quote any character that might otherwise be interpreted or modified by the operating
              system, particularly under Unix and VMS.)

       [-x xfile(s)]
              An optional list of archive members to be excluded from  processing.   Since  wildcard  characters
              match  directory  separators  (`/'),  this  option  may  be  used to exclude any files that are in
              subdirectories.  For example, ``foosfx *.[ch] -x */*'' would extract all C  source  files  in  the
              main  directory, but none in any subdirectories.  Without the -x option, all C source files in all
              directories within the zipfile would be extracted.

       If unzipsfx is compiled with SFX_EXDIR defined, the following option is also enabled:

       [-d exdir]
              An optional directory to which to extract files.  By default, all  files  and  subdirectories  are
              recreated  in  the  current  directory;  the -d option allows extraction in an arbitrary directory
              (always assuming one has permission to write to the directory).  The option and directory  may  be
              concatenated  without  any  white  space  between  them, but note that this may cause normal shell
              behavior to be suppressed.  In particular, ``-d ~'' (tilde) is expanded by Unix C shells into  the
              name  of  the user's home directory, but ``-d~'' is treated as a literal subdirectory ``~'' of the
              current directory.

OPTIONS

       unzipsfx supports the following unzip(1) options:  -c and -p (extract to standard output/screen), -f  and
       -u (freshen and update existing files upon extraction), -t (test archive) and -z (print archive comment).
       All  normal listing options (-l, -v and -Z) have been removed, but the testing option (-t) may be used as
       a ``poor man's'' listing.  Alternatively, those creating self-extracting archives may wish to  include  a
       short listing in the zipfile comment.

       See unzip(1) for a more complete description of these options.

MODIFIERS

       unzipsfx  currently  supports  all unzip(1) modifiers:  -a (convert text files), -n (never overwrite), -o
       (overwrite without prompting), -q (operate quietly), -C (match  names  case-insensitively),  -L  (convert
       uppercase-OS  names  to  lowercase),  -j (junk paths) and -V (retain version numbers); plus the following
       operating-system specific options:  -X  (restore  VMS  owner/protection  info),  -s  (convert  spaces  in
       filenames to underscores [DOS, OS/2, NT]) and -$ (restore volume label [DOS, OS/2, NT, Amiga]).

       (Support  for  regular ASCII text-conversion may be removed in future versions, since it is simple enough
       for the archive's creator to ensure that text files have the appropriate format for the local OS.  EBCDIC
       conversion will of course continue to be supported since the zipfile format implies ASCII storage of text
       files.)

       See unzip(1) for a more complete description of these modifiers.

ENVIRONMENT OPTIONS

       unzipsfx uses the same environment variables as unzip(1) does, although this is likely  to  be  an  issue
       only for the person creating and testing the self-extracting archive.  See unzip(1) for details.

DECRYPTION

       Decryption  is supported exactly as in unzip(1); that is, interactively with a non-echoing prompt for the
       password(s).  See unzip(1) for details.  Once again, note that if the  archive  has  no  encrypted  files
       there  is  no  reason to use a version of unzipsfx with decryption support; that only adds to the size of
       the archive.

AUTORUN COMMAND

       When unzipsfx was compiled with CHEAP_SFX_AUTORUN  defined,  a  simple  ``command  autorun''  feature  is
       supported. You may enter a command into the Zip archive comment, using the following format:

       $AUTORUN$>[command line string]

       When  unzipsfx  recognizes  the  ``$AUTORUN$>''  token  at  the beginning of the Zip archive comment, the
       remainder of the first line of the comment (until the first newline  character)  is  passed  as  a  shell
       command  to  the  operating  system  using  the  C rtl ``system'' function. Before executing the command,
       unzipsfx displays the command on the console and prompts the user for confirmation.  When  the  user  has
       switched off prompting by specifying the -q option, autorun commands are never executed.

       In  case  the  archive  comment  contains  additional lines of text, the remainder of the archive comment
       following the first line is displayed normally, unless quiet operation was requested by  supplying  a  -q
       option.

EXAMPLES

       To  create  a  self-extracting  archive  letters  from  a  regular zipfile letters.zip and change the new
       archive's permissions to be world-executable under Unix:

       cat unzipsfx letters.zip > letters
       chmod 755 letters
       zip -A letters

       To create the same archive under MS-DOS, OS/2 or NT (note the use of the /b [binary] option to  the  copy
       command):

       copy /b unzipsfx.exe+letters.zip letters.exe
       zip -A letters.exe

       Under VMS:

       copy unzipsfx.exe,letters.zip letters.exe
       letters == "$currentdisk:[currentdir]letters.exe"
       zip -A letters.exe

       (The  VMS  append  command  may also be used.  The second command installs the new program as a ``foreign
       command'' capable of taking arguments.  The third line assumes that Zip is already installed as a foreign
       command.)  Under AmigaDOS:

       MakeSFX letters letters.zip UnZipSFX

       (MakeSFX is included with the UnZip source distribution and with Amiga binary distributions.  ``zip  -A''
       doesn't  work  on  Amiga  self-extracting archives.)  To test (or list) the newly created self-extracting
       archive:

       letters -t

       To test letters quietly, printing only a summary message indicating whether the archive is OK or not:

       letters -tqq

       To extract the complete contents into the current directory, recreating all files and  subdirectories  as
       necessary:

       letters

       To extract all *.txt files (in Unix quote the `*'):

       letters *.txt

       To extract everything except the *.txt files:

       letters -x *.txt

       To extract only the README file to standard output (the screen):

       letters -c README

       To print only the zipfile comment:

       letters -z

LIMITATIONS

       The  principle  and fundamental limitation of unzipsfx is that it is not portable across architectures or
       operating systems, and therefore neither are the resulting archives.  For  some  architectures  there  is
       limited portability, however (e.g., between some flavors of Intel-based Unix).

       Another  problem  with  the  current  implementation  is  that any archive with ``junk'' prepended to the
       beginning technically is no longer a zipfile (unless  zip(1)  is  used  to  adjust  the  zipfile  offsets
       appropriately,  as  noted above).  unzip(1) takes note of the prepended bytes and ignores them since some
       file-transfer protocols, notably MacBinary, are also known to prepend junk.  But PKWARE's archiver  suite
       may not be able to deal with the modified archive unless its offsets have been adjusted.

       unzipsfx  has  no  knowledge  of  the user's PATH, so in general an archive must either be in the current
       directory when it is invoked, or else a full or relative path must be  given.   If  a  user  attempts  to
       extract  the  archive  from  a  directory  in  the PATH other than the current one, unzipsfx will print a
       warning to the effect, ``can't find myself.''  This is always true under Unix and may  be  true  in  some
       cases  under  MS-DOS,  depending  on the compiler used (Microsoft C fully qualifies the program name, but
       other compilers may not).  Under OS/2 and NT there are operating-system calls available that provide  the
       full  path  name,  so  the archive may be invoked from anywhere in the user's path.  The situation is not
       known for AmigaDOS, Atari TOS, MacOS, etc.

       As noted above, a number of the normal unzip(1) functions have been removed in  order  to  make  unzipsfx
       smaller:   usage  and diagnostic info, listing functions and extraction to other directories.  Also, only
       stored and deflated files are supported.  The latter limitation is mainly relevant to  those  who  create
       SFX archives, however.

       VMS  users  must  know  how to set up self-extracting archives as foreign commands in order to use any of
       unzipsfx's options.  This is not necessary for simple extraction, but the command to do so then  becomes,
       e.g., ``run letters'' (to continue the examples given above).

       unzipsfx  on  the  Amiga requires the use of a special program, MakeSFX, in order to create working self-
       extracting archives; simple concatenation does not work.  (For technically oriented users,  the  attached
       archive  is  defined as a ``debug hunk.'')  There may be compatibility problems between the ROM levels of
       older Amigas and newer ones.

       All current bugs in unzip(1) exist in unzipsfx as well.

DIAGNOSTICS

       unzipsfx's exit status (error level) is identical to that of unzip(1); see the corresponding man page.

SEE ALSO

       funzip(1), unzip(1), zip(1), zipcloak(1), zipgrep(1), zipinfo(1), zipnote(1), zipsplit(1)

URL

       The Info-ZIP home page is currently at
       http://www.info-zip.org/pub/infozip/
       or
       ftp://ftp.info-zip.org/pub/infozip/ .

AUTHORS

       Greg Roelofs was responsible for the basic modifications to UnZip  necessary  to  create  UnZipSFX.   See
       unzip(1)  for the current list of Zip-Bugs authors, or the file CONTRIBS in the UnZip source distribution
       for the full list of Info-ZIP contributors.

Info-ZIP                                      20 April 2009 (v6.0)                                   UNZIPSFX(1)