EnglishFrenchSpanish

OnWorks favicon

unzipsfx - Online in the Cloud

Run unzipsfx in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command unzipsfx that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

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.

Use unzipsfx online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

Linux commands

  • 1
    a2crd
    a2crd
    a2crd - attempts the conversion of
    lyrics file into chordii input ...
    Run a2crd
  • 2
    a2j
    a2j
    a2j - Wrapper script to simulate
    a2jmidid's non-DBUS behaviour though
    a2jmidid actually being in DBUS mode ...
    Run a2j
  • 3
    cowpoke
    cowpoke
    cowpoke - Build a Debian source package
    in a remote cowbuilder instance ...
    Run cowpoke
  • 4
    cp
    cp
    cp - copy files and directories ...
    Run cp
  • 5
    gbnlreg
    gbnlreg
    gbnlreg - Non linear regression ...
    Run gbnlreg
  • 6
    gbonds
    gbonds
    gbonds - U.S. savings bond inventory
    program for GNOME ...
    Run gbonds
  • More »

Ad