Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 2. Compression - Сжатие
checkzip | unzip | zip | zipto |

Help:   Рус   |   Eng        

Команда: zip
sfk zip out[.zip] [opt] mydir [file1 file2 ...]
sfk zip out[.zip] [opt] -dir mydir -file file1 file2

   add files and folders to a .zip file.

   About filename encoding

   if filenames contain special chars like umlauts
   or accents the following applies:

   - under windows, sfk zip stores filenames

     1. in OEM codepage 866 of your system,
        to support old extraction tools.

     2. and as UTF-8, in the zip format 0x7075 extension
        which will be used by up-to-date programs.

   - under linux, sfk stores only one name, which is
     marked as UTF-8, if such encoding is detected.
     on any other encoding, like accent chars on old file
     systems, sfk zip stores characters as is, and later
     extraction may produce wrong names.

   - UTF-8 name extensions are supported only by up-to-
     date zip extraction tools, like 7zip, Windows 10
     File Explorer, or sfk unzip.

   - names with accent chars exchanged between Mac and
     Non-Mac systems may look wrong due to Decomposed
     Unicode used in Mac OS/X.

   if you extract files at the receiver, then open
   windows explorer and see unexpected filename
   characters, this means the receiver's unzip tool
   is old and does not understand UTF-8 extensions.

   - if you just see wrong accent characters
     it means the receiver system uses a different
     OEM codepage then the sender (sfk sysinfo).

   - if you see #Uxxxx it means filenames contain
     complex unicode chars, like asian or cyrillic.
     you can google for U+xxxx to see what character
     is actually meant.

   No update of existing content
     if the output zip file already exists
     then only new files which are not already
     contained can be added. sfk cannot update
     contents and times within existing zip files.

     sfk zip may fail to compare added filenames
     to existing names in a zip if name encodings
     are mixed or unclear, esp. on linux/mac.

   64 bit zip file support
     if contents are larger then 2 gb, sfk zip
     will create a 64 bit zip file automatically.
     not every unzip tool may be able to read this.
     SFK XE cannot read zip file contents over 2 gb.

   options
     -nosub    do not include sub folders.
     -force    overwrite existing zip file.
     -zipext   add .zip to output filename even
               if it already has an extension.
     -asdir x  create a new folder x within the zip
               and add all files into that folder.
               cannot add to an existing folder.
     -rel[names]  strip top level folder from
               filenames within the zip.
     -big      show a summary of largest files.
     -big=n    show a summary of n largest files.
     -old=n    show a summary of n oldest  files.
     -nosum    show no summary.
     -text     include only ascii text files
               but no binary files.
     -nometa   do not add the os/code comment,
               or set SFK_CONFIG=nozipmeta
     -setexec  mask1 mask2 !mask3 ...
               mark files as executable with
               linux/mac operating systems.
               must be followed by -dir ...
     -offtime  store file times which are
               one hour off, depending on DST.
               for details see: sfk help offtime

   output filename rendering
     if output filename does not contain '.'
     then '.zip' is added. use -zipext to add
     whenever if it does not contain .zip

   output chaining
     sfk zip supports text output chaining,
     to pass filenames for filtered display.

   see also
     sfk zipuni  use just UTF-8 filenames,
                 to support old linux tools.
     sfk unzip   extract a zip file.
     sfk zipto   zip files selected by a
                 previous command.

   sfk zip is very flexible and easy to use,
   but if you need special features like
   direct zip file updating you may consider
   further zipping tools. find an overview on:
   stahlworks.com/zip

   examples
     sfk zip out mydir !.bak
       add all contents of mydir into out.zip,
       except for .bak files, using the short
       file selection syntax.

     sfk zip out -dir foo bar -file !.bak
       add all contents of folder foo and folder
       bar into out.zip, except for .bak files,
       using the long file selection syntax.

     sfk zip out -dir mydir -subdir !save !\tmp
      -file !.bak !old
       add all of mydir into out.zip, except for
       sub folders having 'save' in their name or
       starting with 'tmp', and except for files
       with .bak extension or 'old' in their name.

     sfk select mydir .png +zipto out
       add all .png images of mydir to out.zip.

     sfk zip out mydir .png
       same as above, in one step.

     sfk zip out -since 3d mydir
       add files changed in the last three days.

     sfk zip out.zip -flist mylist.txt
       read a list of filenames from mylist.txt
       and add these files to out.zip

     sfk list -late=5 mydir +zipto out -force
       write the 5 newest files to out.zip,
       overwriting an existing out.zip

     sfk zip out -setexec /conf/ .sh -dir mydir
       zip mydir, mark files named exactly conf,
       or being in a folder conf, or having .sh
       in their name as executable on linux.

     sfk unzip -todir tmpdoc in.odt
     sfk zip -rel out.odt tmpdoc
       extract an openoffice writer document
       into a folder tmpdoc, then repack it to
       out.odt, without the tmpdoc folder name.

     sfk sel -sincedir proj1 proj2 +zipto out
       if proj2 is a newer copy of proj1,
       collect all files added or changed
       since proj1 into out.zip

     sfk zip out mydir +filter -!test
       pack mydir to out.zip, but do not print
       any names with "test" to terminal.