unzipsfx - self-extracting stub for prepending to ZIP archives


[__-cfptuz__[[__ajnoqsCLV$__?] [__-x__ ''xfile(s)'' ...?]


unzipsfx is a modified version of unzip(1L) 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. Similary, 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.



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.


unzipsfx supports the following unzip(1L) 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(1L) for a more complete description of these options.


unzipsfx currently supports all unzip(1L) 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

Fatal Error:

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual

Fatal PhpWiki Error

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual