unzipsfx.1
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:13k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. ." Info-ZIP grants permission to any individual or institution to use, copy,
  2. ." or redistribute this software, so long as:  (1) all of the original files
  3. ." are included; (2) it is not sold for profit; and (3) this notice is re-
  4. ." tained.  See the UnZip COPYING file for details.
  5. ."
  6. ." unzipsfx.1 by Greg Roelofs
  7. ."
  8. ." =========================================================================
  9. ." define .Y macro (for user-command examples; normal Courier font):
  10. .de Y
  11. .ft CW
  12. .in +4n
  13. .nf
  14. &\$1
  15. .ft
  16. .in
  17. .fi
  18. ..
  19. ." =========================================================================
  20. .TH UNZIPSFX 1L "28 November 1998 (v5.4)" "Info-ZIP"
  21. .SH NAME
  22. unzipsfx - self-extracting stub for prepending to ZIP archives
  23. .PD
  24. .SH SYNOPSIS
  25. fB<name of unzipsfx+archive combo>fP [fB-cfptuzfP[fBajnoqsCLV$fP]]
  26. [fIfile(s)fP .|.|. [fB-xfP fIxfile(s)fP .|.|.]]
  27. .PD
  28. ." =========================================================================
  29. .SH DESCRIPTION
  30. fIunzipsfxfP is a modified version of fIunzipfP(1L) designed to be
  31. prepended to existing ZIP archives in order to form self-extracting archives.
  32. Instead of taking its first non-flag argument to be the zipfile(s) to be
  33. extracted, fIunzipsfxfP seeks itself under the name by which it was invoked
  34. and tests or extracts the contents of the appended archive.  Because the
  35. executable stub adds bulk to the archive (the whole purpose of which is to
  36. be as small as possible), a number of the less-vital capabilities in regular
  37. fIunzipfP have been removed.  Among these are the usage (or help) screen,
  38. the listing and diagnostic functions (fB-lfP and fB-vfP), the ability
  39. to decompress older compression formats (the ``reduce,'' ``shrink'' and
  40. ``implode'' methods), and the ability to extract to a directory other than
  41. the current one.  Decryption is supported as a compile-time option but
  42. should be avoided unless the attached archive contains encrypted files.
  43. .PP
  44. fBNote that
  45. self-extracting archives made withfP fIunzipsfxfP fBare no more (or less)
  46. portable across different operating systems than is
  47. thefP fIunzipfP fBexecutable itself.fP  In general a self-extracting
  48. archive made on
  49. a particular Unix system, for example, will only self-extract under the same
  50. flavor of Unix.  Regular fIunzipfP may still be used to extract the
  51. embedded archive as with any normal zipfile, although it will generate
  52. a harmless warning about extra bytes at the beginning of the zipfile.
  53. fIDespite thisfP, however, the self-extracting archive is technically
  54. fInotfP a valid ZIP archive, and PKUNZIP may be unable to test or extract
  55. it.  This limitation is due to the simplistic manner in which the archive
  56. is created; the internal directory structure is not updated to reflect the
  57. extra bytes prepended to the original zipfile.
  58. .PD
  59. ." =========================================================================
  60. .SH ARGUMENTS
  61. .IP [fIfile(s)fP]
  62. An optional list of archive members to be processed.
  63. Regular expressions (wildcards) similar to those in Unix fIegrepfP(1)
  64. may be used to match multiple members.  These wildcards may contain:
  65. .RS
  66. .IP *
  67. matches a sequence of 0 or more characters
  68. .IP ?
  69. matches exactly 1 character
  70. .IP [.|.|.]
  71. matches any single character found inside the brackets; ranges are specified
  72. by a beginning character, a hyphen, and an ending character.  If an exclamation
  73. point or a caret (`!' or `^') follows the left bracket, then the range of
  74. characters within the brackets is complemented (that is, anything fIexceptfP
  75. the characters inside the brackets is considered a match).
  76. .RE
  77. .IP
  78. (Be sure to quote any character that might otherwise be interpreted or
  79. modified by the operating system, particularly under Unix and VMS.)
  80. .IP [fB-xfP fIxfile(s)fP]
  81. An optional list of archive members to be excluded from processing.
  82. Since wildcard characters match directory separators (`/'), this option
  83. may be used to exclude any files that are in subdirectories.  For
  84. example, ``fCfoosfx *.[ch] -x */*fR'' would extract all C source files
  85. in the main directory, but none in any subdirectories.  Without the fB-xfP
  86. option, all C source files in all directories within the zipfile would be
  87. extracted.
  88. .PP
  89. If fIunzipsfxfP is compiled with SFX_EXDIR defined, the following option
  90. is also enabled:
  91. .IP [fB-dfP fIexdirfP]
  92. An optional directory to which to extract files.  By default, all files
  93. and subdirectories are recreated in the current directory; the fB-dfP
  94. option allows extraction in an arbitrary directory (always assuming one
  95. has permission to write to the directory).  The option and directory may
  96. be concatenated without any white space between them, but note that this
  97. may cause normal shell behavior to be suppressed.  In particular,
  98. ``fC-d ~fR'' (tilde) is expanded by Unix C shells into the name
  99. of the user's home directory, but ``fC-d~fR'' is treated as a
  100. literal subdirectory ``fB~fP'' of the current directory.
  101. .PD
  102. ." =========================================================================
  103. .SH OPTIONS
  104. fIunzipsfxfP supports the following fIunzipfP(1L) options:  fB-cfP
  105. and fB-pfP (extract to standard output/screen), fB-ffP and fB-ufP
  106. (freshen and update existing files upon extraction), fB-tfP (test
  107. archive) and fB-zfP (print archive comment).  All normal listing options
  108. (fB-lfP, fB-vfP and fB-ZfP) have been removed, but the testing
  109. option (fB-tfP) may be used as a ``poor man's'' listing.  Alternatively,
  110. those creating self-extracting archives may wish to include a short listing
  111. in the zipfile comment.
  112. .PP
  113. See fIunzipfP(1L) for a more complete description of these options.
  114. .PD
  115. ." =========================================================================
  116. .SH MODIFIERS
  117. fIunzipsfxfP currently supports all fIunzipfP(1L) modifiers:  fB-afP
  118. (convert text files), fB-nfP (never overwrite), fB-ofP (overwrite
  119. without prompting), fB-qfP (operate quietly), fB-CfP (match names
  120. case-insenstively), fB-LfP (convert uppercase-OS names to lowercase),
  121. fB-jfP (junk paths) and fB-VfP (retain version numbers); plus the
  122. following operating-system specific options:  fB-XfP (restore VMS
  123. owner/protection info), fB-sfP (convert spaces in filenames to underscores
  124. [DOS, OS/2, NT]) and fB-$fP (restore volume label [DOS, OS/2, NT, Amiga]).
  125. .PP
  126. (Support for regular ASCII text-conversion may be removed in future versions,
  127. since it is simple enough for the archive's creator to ensure that text
  128. files have the appropriate format for the local OS.  EBCDIC conversion will
  129. of course continue to be supported since the zipfile format implies ASCII
  130. storage of text files.)
  131. .PP
  132. See fIunzipfP(1L) for a more complete description of these modifiers.
  133. .PD
  134. ." =========================================================================
  135. .SH "ENVIRONMENT OPTIONS"
  136. fIunzipsfxfP uses the same environment variables as fIunzipfP(1L) does,
  137. although this is likely to be an issue only for the person creating and
  138. testing the self-extracting archive.  See fIunzipfP(1L) for details.
  139. .PD
  140. ." =========================================================================
  141. .SH DECRYPTION
  142. Decryption is supported exactly as in fIunzipfP(1L); that is, interactively
  143. with a non-echoing prompt for the password(s).  See fIunzipfP(1L) for
  144. details.  Once again, note that if the archive has no encrypted files there
  145. is no reason to use a version of fIunzipsfxfP with decryption support;
  146. that only adds to the size of the archive.
  147. .PD
  148. ." =========================================================================
  149. .SH EXAMPLES
  150. To create a self-extracting archive fIlettersfP from a regular zipfile
  151. fIletters.zipfP and change the new archive's permissions to be
  152. world-executable under Unix:
  153. .PP
  154. .PD 0
  155. .Y "cat unzipsfx letters.zip > letters"
  156. .Y "chmod 755 letters"
  157. .Y "zip -A letters"
  158. .PD
  159. .PP
  160. To create the same archive under MS-DOS, OS/2 or NT (note the use of the
  161. fB/bfP [binary] option to the fIcopyfP command):
  162. .PP
  163. .Y "copy /b unzipsfx.exe+letters.zip letters.exe"
  164. .Y "zip -A letters.exe"
  165. .PP
  166. Under VMS:
  167. .PP
  168. .Y "copy unzipsfx.exe,letters.zip letters.exe"
  169. .Y "letters == ""$currentdisk:[currentdir]letters.exe"""
  170. .Y "zip -A letters.exe"
  171. .PP
  172. (The VMS fIappendfP command may also be used.  The second command installs
  173. the new program as a ``foreign command'' capable of taking arguments.  The
  174. third line assumes that Zip is already installed as a foreign command.)
  175. Under AmigaDOS:
  176. .PP
  177. .Y "MakeSFX letters letters.zip UnZipSFX"
  178. .PP
  179. (MakeSFX is included with the UnZip source distribution and with Amiga
  180. binary distributions.  ``fCzip -AfR'' doesn't work on Amiga self-extracting
  181. archives.)
  182. To test (or list) the newly created self-extracting archive:
  183. .PP
  184. .Y "letters -t"
  185. .PP
  186. To test fIlettersfP quietly, printing only a summary message indicating
  187. whether the archive is OK or not:
  188. .PP
  189. .Y "letters -tqq"
  190. .PP
  191. To extract the complete contents into the current directory, recreating all
  192. files and subdirectories as necessary:
  193. .PP
  194. .Y "letters"
  195. .PP
  196. To extract all fC*.txtfR files (in Unix quote the `*'):
  197. .PP
  198. .Y "letters *.txt"
  199. .PP
  200. To extract everything fIexceptfP the fC*.txtfR files:
  201. .PP
  202. .Y "letters -x *.txt"
  203. .PP
  204. To extract only the README file to standard output (the screen):
  205. .PP
  206. .Y "letters -c README"
  207. .PP
  208. To print only the zipfile comment:
  209. .PP
  210. .Y "letters -z"
  211. .PD
  212. ." =========================================================================
  213. .SH LIMITATIONS
  214. The principle and fundamental limitation of fIunzipsfxfP is that it is
  215. not portable across architectures or operating systems, and therefore
  216. neither are the resulting archives.  For some architectures there is
  217. limited portability, however (e.g., between some flavors of Intel-based Unix).
  218. .PP
  219. Another problem with the current implementation is that any archive
  220. with ``junk'' prepended to the beginning technically is no longer a zipfile
  221. (unless fIzipfP(1) is used to adjust the zipfile offsets appropriately,
  222. as noted above).  fIunzipfP(1) takes note of the prepended bytes
  223. and ignores them since some file-transfer protocols, notably MacBinary, are
  224. also known to prepend junk.  But PKWARE's archiver suite may not be able to
  225. deal with the modified archive unless its offsets have been adjusted.
  226. .PP
  227. fIunzipsfxfP has no knowledge of the user's PATH, so in general an archive
  228. must either be in the current directory when it is invoked, or else a full
  229. or relative path must be given.  If a user attempts to extract the archive
  230. from a directory in the PATH other than the current one, fIunzipsfxfP will
  231. print a warning to the effect, ``can't find myself.''  This is always true
  232. under Unix and may be true in some cases under MS-DOS, depending on the
  233. compiler used (Microsoft C fully qualifies the program name, but other
  234. compilers may not).  Under OS/2 and NT there are operating-system calls
  235. available that provide the full path name, so the archive may be invoked
  236. from anywhere in the user's path.  The situation is not known for AmigaDOS,
  237. Atari TOS, MacOS, etc.
  238. .PP
  239. As noted above, a number of the normal fIunzipfP(1L) functions have
  240. been removed in order to make fIunzipsfxfP smaller:  usage and diagnostic
  241. info, listing functions and extraction to other directories.  Also, only
  242. stored and deflated files are supported.  The latter limitation is mainly
  243. relevant to those who create SFX archives, however.
  244. .PP
  245. VMS users must know how to set up self-extracting archives as foreign
  246. commands in order to use any of fIunzipsfxfP's options.  This is not
  247. necessary for simple extraction, but the command to do so then becomes,
  248. e.g., ``fCrun lettersfR'' (to continue the examples given above).
  249. .PP
  250. fIunzipsfxfP on the Amiga requires the use of a special program, MakeSFX,
  251. in order to create working self-extracting archives; simple concatenation
  252. does not work.  (For technically oriented users, the attached archive is
  253. defined as a ``debug hunk.'')  There may be compatibility problems between
  254. the ROM levels of older Amigas and newer ones.
  255. .PP
  256. All current bugs in fIunzipfP(1L) exist in fIunzipsfxfP as well.
  257. .PD
  258. ." =========================================================================
  259. .SH DIAGNOSTICS
  260. fIunzipsfxfP's exit status (error level) is identical to that of
  261. fIunzipfP(1L); see the corresponding man page.
  262. .PD
  263. ." =========================================================================
  264. .SH "SEE ALSO"
  265. fIfunzipfP(1L), fIunzipfP(1L), fIzipfP(1L), fIzipcloakfP(1L),
  266. fIzipgrepfP(1L), fIzipinfofP(1L), fIzipnotefP(1L), fIzipsplitfP(1L)
  267. .PD
  268. .PD
  269. ." =========================================================================
  270. .SH URL
  271. The Info-ZIP home page is currently at fChttp://www.cdrom.com/pub/infozip/fR .
  272. .PD
  273. ." =========================================================================
  274. .SH AUTHORS
  275. Greg Roelofs was responsible for the basic modifications to UnZip necessary
  276. to create UnZipSFX.  See fIunzipfP(1L) for the current list of Zip-Bugs
  277. authors, or the file CONTRIBS in the UnZip source distribution for the
  278. full list of Info-ZIP contributors.
  279. .PD