123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467 |
- .!
- .! File: ZIP.RNH
- .!
- .! Author: Hunter Goatley
- .!
- .! Date: October 22, 1991
- .!
- .! Description:
- .!
- .! RUNOFF source file for portable ZIP on-line help for VMS.
- .! Adapted from MANUAL, distributed with ZIP.
- .!
- .! To build: $ RUNOFF ZIP.RNH
- .! $ LIBR/HELP/INSERT libr ZIP
- .!
- .! Modification history:
- .!
- .! Hunter Goatley 22-OCT-1991 20:45
- .! Genesis.
- .! Jean-loup Gailly 25 March 92
- .! Adaptation to zip 1.6.
- .! Igor Mandrichenko 9-JUN-1992
- .! Added explanation of -V option.
- .! Jean-loup Gailly 14 June 92
- .! Adaptation to zip 1.8.
- .! Jean-loup Gailly 20 Aug 92
- .! Adaptation to zip 1.9.
- .! Jean-loup Gailly 31 Aug 93
- .! Adaptation to zip 2.0.
- .! Christian Spieler 20 Sep 93
- .! Adaptation to zip 2.0 and OpenVMS completed.
- .! Christian Spieler 05 Dec 95
- .! Adaptation to zip 2.1, new options.
- .! Christian Spieler 20 Jan 96
- .! Changed -L and -v descriptions.
- .! Christian Spieler 11 Feb 96
- .! Added -X option.
- .! Onno van der Linden,
- .! Christian Spieler 13 Mar 96
- .! Removed -ee option.
- .! Christian Spieler 09 Feb 96
- .! Updated copyright notice, Zip version.
- .! Christian Spieler 21 Jul 97
- .! Added -P, -R, -i@, -x@ and -tt options, modified for Zip 2.2.
- .! Christian Spieler 14 Oct 97
- .! unified spelling of "Info-ZIP", final cleanups for 2.2.
- .! Steven Schweda 10 May 2007
- .! General update for version 3.0.
- .! Ed Gordon 12 May 2007
- .! Minor updates for version 3.0.
- .!
- .noflags
- .lm4 .rm72
- .indent -4
- 1 ZIP
- .br
- Zip is a compression and file packaging utility for several operating
- systems, including UNIX, VMS, MSDOS, OS/2, Windows 9x/NT/XP, Minix, Atari,
- Macintosh, Amiga, and Acorn RISC OS. It is analogous to a combination of
- tar and compress and is compatible with PKZIP (Phil Katz's ZIP) for
- MSDOS systems.
- .sk
- Zip is useful for packaging a set of files for distribution, for
- archiving files, and for saving disk space by temporarily compressing
- unused files or directories. A companion program, UnZip, unpacks Zip
- archives.
- .sk
- For brief help on Zip or UnZip, run the program without specifying any
- parameters on the command line.
- .sk
- This description covers the Zip program which uses a UNIX-style command
- line. A separate program is available which provides a VMS-style CLI
- command line, and it has its own documentation. Refer to the Zip
- installation instructions for details.
- .sk
- Format
- .sk;.lm+2;.literal
- ZIP [-options] archive inpath inpath ...
- .end literal;.lm-2
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Basic_Usage
- .br
- Format
- .sk;.lm+2;.literal
- ZIP [-options] archive inpath inpath ...
- .end literal;.lm-2
- .sk
- The default action of Zip is to add or replace entries in "archive" from
- the list of "inpath" file specifications, which can include directories
- and file names with VMS-style wildcards, or the special name -@ to read
- file specifications from SYS$INPUT (stdin).
- .sk
- With SET PROCESS /PARSE_STYLE = EXTENDED (available on recent non-VAX
- systems), Zip preserves the case of the command line. Otherwise, mixed-
- or upper-case options and arguments must be quoted. For example,
- "-V". Examples in this document generally do not show this quotation,
- so VAX and /PARSE_STYLE = TRADITIONAL users (that is, troglodytes) will
- need to add quotation where needed when working with these examples.
- .sk
- General
- .sk
- Zip reads one or more files, compresses the data (normally), and stores
- the compressed information into a single Zip archive file, along with
- information about each file (name, path, date and time of last
- modification, protection, and check information to verify file
- integrity). On a VMS system, Zip can also save VMS/RMS file attributes,
- allowing UnZip to restore the files without loss of important file
- attributes. Zip can pack an entire directory structure into a Zip
- archive with a single command.
- .sk
- Compression
- .sk
- Compression ratios of 2:1 to 3:1 are common for text files. Zip has one
- standard compression method ("deflate") and can also store files without
- compression. Zip (and UnZip) may be built with optional support for the
- bzip2 compression method. Then, the user may select bzip2 compression
- instead of the default "deflate" method. Zip automatically chooses
- simple storage over compression for a file, if the specified compression
- method does not actually compress the data in that file.
- .sk
- Compatibility
- .sk
- Zip and UnZip can work with archives produced by PKZIP (supporting most
- PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can work
- with archives produced by Zip (with some exceptions, notably streamed
- archives, but recent changes in the .ZIP file standard may facilitate
- better compatibility). Zip version 3.0 is compatible with PKZIP 2.04
- and also supports the Zip64 extensions of PKZIP 4.5 which allows
- archives as well as files to exceed the previous 2 GB limit (4 GB in
- some cases). Zip also supports bzip2 compression if the bzip2 library
- is included when Zip is built. Note that PKUNZIP 1.10 cannot extract
- files produced by PKZIP 2.04 or Zip 3.0. You must use PKUNZIP 2.04g or
- UnZip 5.0p1 (or later versions) to extract them.
- .sk
- Large Archives and Zip64
- .sk
- Where the operating system and C run-time support allow, Zip 3.0 and
- UnZip 6.0 (and later versions) support large files (input and archive),
- using the Zip64 extensions to the original .ZIP file format. On VMS,
- this genarally means non-VAX systems with VMS V7.2 or later (perhaps
- requiring a C RTL ECO before VMS V7.3-2).
- .sk
- Zip automatically uses the Zip64 extensions when a file larger than 2 GB
- is added to an archive, an archive containing a Zip64 entry is updated
- (if the resulting archive still needs Zip64), the size of the archive
- will exceed 4 GB, or when the number of entries in the archive will
- exceed about 64K. Zip64 is also used for archives streamed to a
- non-seekable output device. You must use a 4.5 compatible UnZip to
- extract files using the Zip64 extensions such as UnZip 6.0 or later.
- .sk
- In addition, streamed archives, entries encrypted with standard
- encryption, or split archives created with the pause option may not be
- compatible with PKZIP as data descriptors are used, and PKZIP at the
- time of this writing does not support data descriptors (but recent
- changes in the PKWare published .ZIP file standard now include some
- support for the data descriptor format Zip uses).
- .!------------------------------------------------------------------------------
- .indent -4
- 2 More_Usage
- .br
- Here is a very simple example of Zip use:
- .sk;.indent 10;
- $ zip stuff.zip *.*
- .sk
- This will create the Zip archive "stuff.zip" (assuming it does not
- already exist) and put all the (non-directory) files (";0") from the
- current default directory into "stuff.zip" in a compressed form. The
- archive is opened using a default file specification of
- "SYS$DISK:[].zip", so specifying "stuff" as the archive name would also
- create (or use an existing) "stuff.zip", but specifying "stuff.other"
- would give you that name. In general, Zip doesn't care about the type
- in the file specification, but for split archives (archives split over
- multiple files), the user should normally specify a type-less name,
- because Zip will normally generate sequentially numbered types ".z01",
- ".z02", and so on for the early splits, and then the required ".zip" for
- the last split. These file types are required by the Zip standard for
- split archives.
- .sk
- Standard VMS wildcard expansion ($SEARCH) is used to interpret the
- "inpath" file and directory specifications, like the "*.*" in this
- example.
- .sk
- On VMS, the most natural way to archive an entire directory tree is to
- use a directory-depth wildcard ("[...]"). For example:
- .sk;.indent 10
- zip foo [...]*.*
- .sk
- This will create the file "foo.zip" containing all the files (";0") and
- directories in and below the current default directory. A more
- UNIX-like way to do this would be to use the -r (--recurse-paths)
- option:
- .sk;.indent 10
- $ zip -r foo *.*
- .sk
- Zip avoids including its own output files when selecting files to
- include in the archive, so it should be safe, as in this case, to create
- the archive in the same drectory as the input files.
- .sk
- One or more specific files, directories, or subdirectories may also be
- specified:
- .lm +10;.literal
- zip foo.zip readme.txt [www...]*.* [.ftp...]*.* -
- [.src]*.h [.src]*.c
- .end literal;.lm -10
- .sk
- For security reasons, paths in Zip archives are always stored as
- relative paths, so some care is needed when creating an archive so that
- it will create the intended directory structure when UnZip is used to
- unpack it.
- .sk
- To use -r with a specific directory, the name of the directory file
- itself must be specified:
- .sk;.indent 10
- zip -r foo.zip [000000]www.dir ftp.dir
- .sk
- You may want to make an archive that contains the files in [.foo], but not
- record the directory name, "foo". You can use the -j (junk path) option
- to leave off the path:
- .sk;.indent 10
- $ zip -j foo [.foo]*.*
- .sk
- If you are short on disk space, you might not have enough room to hold
- both the original directory and the corresponding compressed Zip
- archive. In this case, you can create the archive in steps, and use the
- -m option. For example, if [.foo] contains the subdirectories [.tom],
- [.dick], and [.harry], you could:
- .sk
- .lm +10;.literal
- zip -m foo [.foo.tom...]*.*
- zip -m foo [.foo.dick...]*.*
- zip -m foo [.foo.harry...]*.*
- .end literal;.lm -10
- .sk
- The first command would create foo.zip, and the next two would add to
- it. The -m option means "move", and it will cause Zip to delete all
- files added to the archive after making or updating foo.zip. No
- deletions will be done until the Zip operation has completed with no
- errors. This option is obviously dangerous and should be used with
- care, but it does reduce the need for free disk space. When -m is
- used, the -T option is recommended and will test the resulting archive
- before deleting the input files.
- .sk
- If a file specification list is too long to fit conveniently on the Zip
- command line, the -@ option can be used to cause Zip to read a list of
- file specifications from SYS$INPUT (stdin). If a DCL command procedure
- is used, the names can be specified in the procedure:
- .sk;
- .lm +10;.literal
- $ zip foo -@
- $ deck
- file_spec_1
- file_spec_2
- file_spec_3
- $ eod
- .end literal;.lm -10
- .sk
- The file specifications can also be put into a separate file, and fed
- into Zip by explicitly defining SYS$INPUT, or by using PIPE. For
- example, with the list in foo.zfl:
- .sk;
- .lm +10;.literal
- $ define /user_mode sys$input foo.zfl
- $ zip foo -@
- .end literal;.lm -10;
- or:
- .lm +10;.literal
- $ pipe type foo.zfl | zip foo -@
- .end literal;.lm -10
- .sk
- If Zip is not able to read a file, it issues a warning but continues.
- See the -MM option for more on how Zip handles patterns that are not
- matched and files that are not readable. If some files were skipped, a
- warning is issued at the end of the Zip operation noting how many files
- were read and how many skipped.
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Comments
- .br
- One-line comments may be included in the archive for each file added,
- using the -c (--entry-comments) option. File operations (adding,
- updating) are done first, and the user is then prompted for a one-line
- comment for each file added or updated. Enter the comment followed by
- <Return>, or just <Return> for no comment.
- .sk
- A single multi-line comment may be included for the archive as a whole,
- using the -z (--archive-comment) option. UnZip (including UnZip SFX)
- will display this comment when it expands the archive. The comment is
- read from SYS$INPUT (stdin), and is terminated by the usual end-of-file
- character, CTRL/Z. As usual, in a DCL command procedure, these data can
- be included in-line in the procedure, or a user may DEFINE SYS$INPUT to
- a file to get the comment from that file. Where supported, the DCL PIPE
- command can also be used to redirect SYS$INPUT from a file.
- .sk
- Note that -z (--archive-comment) and -@ (read file specifications from
- SYS$INPUT (stdin)) can't be used together (successfully).
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Compression
- .br
- Zip can archive files with or without compression. The standard
- compression method ("deflate") is compatible with all UnZip versions
- (except really old ones that only understand the "store" method).
- Current Zip and UnZip versions may be built with optional support for
- the bzip2 compression method. (The bzip2 method can compress better,
- especially when compressing smaller files, but uses more CPU time, and
- requires an UnZip which includes the optional bzip2 support. See the
- installation instructions for details on adding bzip2 compression
- support at build time.)
- .sk
- Numeric compression level options control the effort put into data
- compression, with -1 being the fastest, and -9 giving the most
- compression.
- .sk
- Compression control options:
- .sk;.lm +10;.literal
- -Z mthd use compress method "mthd",
- --compression-method mthd "bzip2" or "deflate" (default)
- -0 (--store) no compression
- -1 (--compress-1) compression level 1
- -2 (--compress-2) compression level 2
- -3 (--compress-3) compression level 3
- -4 (--compress-4) compression level 4
- -5 (--compress-5) compression level 5
- -6 (--compress-6) compression level 6
- -7 (--compress-7) compression level 7
- -8 (--compress-8) compression level 8
- -9 (--compress-9) compression level 9
- .end literal;.lm -10
- .sk
- Normally, a file which is already compressed will not be compressed much
- further (if at all) by Zip, and trying to do it can waste considerable
- CPU time. Zip can suppress compression on files with particular types,
- specified as a colon- or semi-colon-separated list of file types:
- .sk;.indent 10
- -n type1[:type2[...]] (--suffixes type1[:type2[...]])
- .sk
- For example:
- .sk;.indent 10
- zip -n .bz2:.gz:.jpeg:.jpg:.mp3:.zip foo [.foo]*.*
- .sk
- will put everything (";0") from [.foo] into foo.zip, but will store any
- files that end in .bz2, .gz, .jpeg, .jpg, .mp3, or .zip, without trying
- to compress them.
- .sk
- The default type list is .Z:.zip:.zoo:.arc:.lzh:.arj, and the comparison
- is case-insensitive.
- .sk
- -9 (--compress-9) will override -n (--suffixes), causing compression to
- be attempted for all files.
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Encryption
- .br
- Zip offers optional encryption, using a method which by modern standards
- is generally considered to be weak.
- .sk;.literal
- -e --encrypt
- .end literal;.br
- Encrypt new or updated archive entries using a password which is
- supplied by the user interactively on the terminal in response to a
- prompt. (The password will not be echoed.) If SYS$COMMAND is not a
- terminal, Zip will exit with an error. The password is verified before
- being accepted.
- .sk;.literal
- -P password --password password
- .end literal;.br
- Use "password" to encrypt new or updated archive entries (if any).
- USING -P IS INSECURE! Many multi-user operating systems provide ways
- for any user (or a privileged user) to see the current command line of
- any other user. Even on more secure systems, there is always the threat
- of over-the-shoulder peeking. Storing the plaintext password as part of
- a command line in a command procedure is even less secure. Whenever
- possible, use the non-echoing, interactive password entry method.
- .sk
- Because standard Zip encryption is weak, where security is truly
- important, use a strong encryption program, such as Pretty Good Privacy
- (PGP) or GNU Privacy Guard (GnuPG), on an archive instead of standard
- Zip encryption. A stronger encryption method, such as AES, is planned
- for Zip 3.1.
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Exit_Status
- .br
- On VMS, Zip's UNIX-style exit values are mapped into VMS-style status
- codes with facility code 1955 = %x7A3, and with the inhibit-message
- (%x10000000) and facility-specific (%x00008000) bits set:
- .sk
- .literal
- %x17A38001 normal exit
- %x17A38000+ 16* Zip_error_code warnings
- %x17A38002+ 16* Zip_error_code normal errors
- %x17A38004+ 16* Zip_error_code fatal errors
- .end literal
- .sk
- Note that multiplying the UNIX-style Zip error code by 16 places it
- conveniently in the hexadecimal representation of the VMS exit code,
- "__" in %x17A38__s, where "s" is the severity code. For example, a
- truncated archive might cause Zip error code 2, which would be
- transformed into the VMS exit status %x17A38024.
- .sk
- The Zip VMS exit codes include severity values which approximate those
- defined by PKWARE, as shown in the following table:
- .literal
- VMS Zip err
- severity code Error description
- ----------+---------+----------------------------------------------
- Success 0 Normal; no errors or warnings detected.
- Fatal 2 Unexpected end of archive.
- Error 3 A generic error in the archive format was
- detected. Processing may have completed
- successfully anyway; some broken archives
- created by other archivers have simple work-
- arounds.
- Fatal 4 Zip was unable to allocate memory for one or
- more buffers during program initialization.
- Fatal 5 A severe error in the archive format was
- detected. Processing probably failed imme-
- diately.
- Error 6 Entry too large to be split with zipsplit.
- Error 7 Invalid comment format.
- Fatal 8 Zip -T failed or out of memory.
- Error 9 The user aborted zip prematurely with con-
- trol-C (or equivalent).
- Fatal 10 Zip encountered an error while using a temp
- file.
- Fatal 11 Read or seek error.
- Warning 12 Zip has nothing to do.
- Error 13 Missing or empty zip file.
- Fatal 14 Error writing to a file.
- Fatal 15 Zip was unable to create a file to write to.
- Error 16 Bad command line parameters.
- Error 18 Zip could not open a specified file to read.
- Fatal 19 Zip was built with options not supported on
- this system
- Fatal 20 Attempt to read unsupported Zip64 archive
- .end literal
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Extra_Fields
- .br
- The .ZIP file format allows some extra data to be stored with a file in
- the archive. For example, where local time zone information is
- available, Zip can store UTC date-time data for files. (Look for
- USE_EF_UT_TIME in a "zip -v" report.) On VMS, with -V or -VV, Zip will
- also store VMS-specific file attributes. These data are packaged as
- "extra fields" in the archive. Some extra fields are specific to a
- particular operating system (like VMS file attributes). Large files
- (bigger than 4GB) on any OS require an extra field to hold their 64-bit
- size data. Depending on the capabilities of the UnZip program used to
- expand the archive, these extra fields may be used or ignored when files
- are extracted from the archive.
- .sk
- Some extra fields, like UTC date-times or VMS file attributes, are
- optional. Others, like the Zip64 extra field which holds 64-bit sizes
- for a large file, are required.
- .sk
- The -X (--strip-extra) option suppresses the saving of any optional
- extra fields in the archive. (Thus, -X conflicts with -V or -VV.)
- .!------------------------------------------------------------------------------
- .indent -4
- 2 Environment
- .br
- A user can specify default command-line options and arguments by
- defining an "environment variable" (that is, a logical name or DCL
- symbol), "ZIP_OPTS" or "ZIPOPT", to specify them. If both "ZIP_OPTS" and
- "ZIPOPT" are specified, the definition of "ZIPOPT" prevails.
- .sk
- The C RTL function getenv() is used to sense these variables, so its
- behavior determines what happens if both a logical name and a symbol are
- defined. As of VMS V7.3, a logical name supercedes a symbol.
- .sk
- The "zip -v" report should show the perceived settings of these
- variables.
- .!------------------------------------------------------------------------------
- .indent -4
- 2 File_Names
- .br
- Zip deals with file names in the system file system and with file names
- in Zip archives. File names in a Zip archive are stored in a UNIX-like
- path-name format. For example, a VMS file specification like this:
- .sk;.indent 10
- [.zip30.vms]descrip.mms
- .sk
- could appear in a Zip archive as:
- .sk;.indent 10
- zip30/vms/descrip.mms
- .sk
- For security reasons, paths in Zip archives are always stored as
- relative paths, so an absolute VMS directory specification will be
- transformed to a relative path in the archive (that is, no leading "/").
- For example, the following absolute directory specification would give
- the same archive path as the previous (relative) example:
- .sk;.indent 10
- [zip30.vms]descrip.mms
- .sk
- Also, device names are dropped, so the following file specification
- would also give the same archive path:
- .sk;.indent 10
- sys$sysdevice:[zip30.vms]descrip.mms
- .sk
- If an archive is intended for use with PKUNZIP under MSDOS, then the -k
- (for "Katz", --DOS-names) option should be used to attempt to adjust the
- names and paths to conform to MSDOS character-set and length
- limitations, to store only the MSDOS file attributes (just the
- owner:write attribute from VMS), and to mark the entry as made under
- MSDOS (even though it wasn't).
- .sk
- Note that file specifications in the file system must be specified using
- VMS notation, but file names in an archive must be specified using the
- UNIX-like notation used in the archive. For example, where a BACKUP
- command might look like this:
- .sk.indent 10
- $ back [.zip30...]*.* /excl = [...vms]*.c stuff.bck /save
- .sk
- a corresponding Zip command might look like this:
- .sk;.indent 10;
- $ zip stuff.zip [.zip30...]*.* -x */vms
|