update patch for openssl to 1.1.0h
[AROS-Contrib.git] / aminet / util / arc / unzip / zipinfo.txt
blob7139f60f90a6054c9d82b1a38e4cc8a3859383b0
1 ZIPINFO(1L)                                                        ZIPINFO(1L)
3 NAME
4        zipinfo - list detailed information about a ZIP archive
6 SYNOPSIS
7        zipinfo [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]
9        unzip -Z [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]
11 DESCRIPTION
12        zipinfo  lists technical information about files in a ZIP archive, most
13        commonly found on  MS-DOS  systems.   Such  information  includes  file
14        access permissions, encryption status, type of compression, version and
15        operating system or file system of compressing program, and  the  like.
16        The  default  behavior (with no options) is to list single-line entries
17        for each file in the archive, with header and trailer  lines  providing
18        summary  information  for  the  entire  archive.  The format is a cross
19        between Unix ``ls -l'' and ``unzip -v'' output.  See DETAILED  DESCRIP-
20        TION  below.   Note  that  zipinfo  is the same program as unzip (under
21        Unix, a link to it); on some systems, however, zipinfo support may have
22        been omitted when unzip was compiled.
24 ARGUMENTS
25        file[.zip]
26               Path  of  the  ZIP  archive(s).   If the file specification is a
27               wildcard, each matching file is processed in an order determined
28               by the operating system (or file system).  Only the filename can
29               be a wildcard; the path itself cannot.  Wildcard expressions are
30               similar to Unix egrep(1) (regular) expressions and may contain:
32               *      matches a sequence of 0 or more characters
34               ?      matches exactly 1 character
36               [...]  matches  any  single character found inside the brackets;
37                      ranges are specified by a beginning character, a  hyphen,
38                      and  an  ending  character.  If an exclamation point or a
39                      caret (`!' or `^') follows the  left  bracket,  then  the
40                      range  of  characters within the brackets is complemented
41                      (that is,  anything  except  the  characters  inside  the
42                      brackets  is  considered a match).  To specify a verbatim
43                      left bracket, the three-character sequence ``[[]'' has to
44                      be used.
46               (Be  sure  to quote any character that might otherwise be inter-
47               preted or modified by the operating system,  particularly  under
48               Unix  and  VMS.)   If no matches are found, the specification is
49               assumed to be a literal filename; and if that  also  fails,  the
50               suffix  .zip  is  appended.  Note that self-extracting ZIP files
51               are supported, as with any other ZIP archive; just  specify  the
52               .exe suffix (if any) explicitly.
54        [file(s)]
55               An  optional  list of archive members to be processed, separated
56               by spaces.  (VMS versions  compiled  with  VMSCLI  defined  must
57               delimit  files with commas instead.)  Regular expressions (wild-
58               cards) may be used to match multiple members; see above.  Again,
59               be sure to quote expressions that would otherwise be expanded or
60               modified by the operating system.
62        [-x xfile(s)]
63               An optional list of archive members to be excluded from process-
64               ing.
66 OPTIONS
67        -1     list  filenames  only,  one  per line.  This option excludes all
68               others;  headers,  trailers  and  zipfile  comments  are   never
69               printed.  It is intended for use in Unix shell scripts.
71        -2     list  filenames  only,  one  per  line,  but allow headers (-h),
72               trailers (-t) and zipfile comments (-z), as well.   This  option
73               may  be  useful in cases where the stored filenames are particu-
74               larly long.
76        -s     list zipfile info in short Unix ``ls -l'' format.  This  is  the
77               default behavior; see below.
79        -m     list zipfile info in medium Unix ``ls -l'' format.  Identical to
80               the -s output, except that the compression factor, expressed  as
81               a percentage, is also listed.
83        -l     list  zipfile  info  in  long Unix ``ls -l'' format.  As with -m
84               except that the compressed size (in bytes) is printed instead of
85               the compression ratio.
87        -v     list zipfile information in verbose, multi-page format.
89        -h     list  header line.  The archive name, actual size (in bytes) and
90               total number of files is printed.
92        -M     pipe all output through an internal pager similar  to  the  Unix
93               more(1)  command.   At the end of a screenful of output, zipinfo
94               pauses with a ``--More--'' prompt; the  next  screenful  may  be
95               viewed  by  pressing  the  Enter  (Return) key or the space bar.
96               zipinfo can be terminated by pressing the ``q'' key and, on some
97               systems, the Enter/Return key.  Unlike Unix more(1), there is no
98               forward-searching or editing capability.  Also, zipinfo  doesn't
99               notice if long lines wrap at the edge of the screen, effectively
100               resulting in the printing of two or more lines and  the  likeli-
101               hood that some text will scroll off the top of the screen before
102               being viewed.  On some systems the number of available lines  on
103               the  screen  is  not detected, in which case zipinfo assumes the
104               height is 24 lines.
106        -t     list totals for files listed or for all files.   The  number  of
107               files  listed,  their  uncompressed and compressed total sizes ,
108               and their overall compression factor is printed; or, if only the
109               totals  line is being printed, the values for the entire archive
110               are given.  The compressed total size does not  include  the  12
111               additional  header  bytes of each encrypted entry. Note that the
112               total compressed (data) size will never match the actual zipfile
113               size,  since  the  latter  includes  all of the internal zipfile
114               headers in addition to the compressed data.
116        -T     print the file dates and times  in  a  sortable  decimal  format
117               (yymmdd.hhmmss).   The  default  date format is a more standard,
118               human-readable version with abbreviated month names  (see  exam-
119               ples below).
121        -U     [UNICODE_SUPPORT  only]  modify or disable UTF-8 handling.  When
122               UNICODE_SUPPORT is available, the  option  -U  forces  unzip  to
123               escape  all  non-ASCII  characters from UTF-8 coded filenames as
124               ``#Uxxxx''.  This option is mainly provided for  debugging  pur-
125               pose when the fairly new UTF-8 support is suspected to mangle up
126               extracted filenames.
128               The option -UU allows to entirely  disable  the  recognition  of
129               UTF-8  encoded  filenames.   The  handling  of  filename codings
130               within unzip falls back to the behaviour of previous versions.
132        -z     include the archive comment (if any) in the listing.
134 DETAILED DESCRIPTION
135        zipinfo has a number of modes, and its behavior can be rather difficult
136        to  fathom  if  one isn't familiar with Unix ls(1) (or even if one is).
137        The default behavior is to list files in the following format:
139   -rw-rws---  1.9 unx    2802 t- defX 11-Aug-91 13:48 perms.2660
141        The last three fields are the modification date and time of  the  file,
142        and  its  name.  The case of the filename is respected; thus files that
143        come from MS-DOS PKZIP are always capitalized.  If the file was  zipped
144        with  a  stored  directory  name, that is also displayed as part of the
145        filename.
147        The second and third fields indicate that the  file  was  zipped  under
148        Unix  with version 1.9 of zip.  Since it comes from Unix, the file per-
149        missions at the beginning of the line are printed in Unix format.   The
150        uncompressed file-size (2802 in this example) is the fourth field.
152        The fifth field consists of two characters, either of which may take on
153        several values.  The first character may be either `t' or `b', indicat-
154        ing  that zip believes the file to be text or binary, respectively; but
155        if the file is encrypted, zipinfo notes this fact by  capitalizing  the
156        character  (`T'  or  `B').   The second character may also take on four
157        values, depending on whether there is an extended local  header  and/or
158        an  ``extra  field''  associated  with  the  file  (fully  explained in
159        PKWare's APPNOTE.TXT,  but  basically  analogous  to  pragmas  in  ANSI
160        C--i.e.,  they  provide a standard way to include non-standard informa-
161        tion in the archive).  If neither  exists,  the  character  will  be  a
162        hyphen  (`-'); if there is an extended local header but no extra field,
163        `l'; if the reverse, `x'; and if both exist, `X'.   Thus  the  file  in
164        this  example is (probably) a text file, is not encrypted, and has nei-
165        ther an extra field nor an extended local header  associated  with  it.
166        The  example below, on the other hand, is an encrypted binary file with
167        an extra field:
169   RWD,R,R     0.9 vms     168 Bx shrk  9-Aug-91 19:15 perms.0644
171        Extra fields are used for various purposes (see discussion  of  the  -v
172        option  below)  including  the storage of VMS file attributes, which is
173        presumably the case here.  Note that the file attributes are listed  in
174        VMS  format.   Some  other  possibilities for the host operating system
175        (which is actually  a  misnomer--host  file  system  is  more  correct)
176        include  OS/2  or  NT with High Performance File System (HPFS), MS-DOS,
177        OS/2 or NT with File Allocation Table (FAT) file system, and Macintosh.
178        These are denoted as follows:
180   -rw-a--     1.0 hpf    5358 Tl i4:3  4-Dec-91 11:33 longfilename.hpfs
181   -r--ahs     1.1 fat    4096 b- i4:2 14-Jul-91 12:58 EA DATA. SF
182   --w-------  1.0 mac   17357 bx i8:2  4-May-92 04:02 unzip.macr
184        File  attributes  in  the  first two cases are indicated in a Unix-like
185        format, where the seven subfields indicate whether the file:  (1) is  a
186        directory,  (2) is readable (always true), (3) is writable, (4) is exe-
187        cutable (guessed on the basis of the extension--.exe, .com, .bat,  .cmd
188        and  .btm files are assumed to be so), (5) has its archive bit set, (6)
189        is hidden, and (7) is a system file.  Interpretation of Macintosh  file
190        attributes  is  unreliable because some Macintosh archivers don't store
191        any attributes in the archive.
193        Finally, the sixth field indicates the compression method and  possible
194        sub-method  used.  There are six methods known at present:  storing (no
195        compression), reducing, shrinking, imploding,  tokenizing  (never  pub-
196        licly  released), and deflating.  In addition, there are four levels of
197        reducing (1 through 4); four types of imploding (4K or 8K sliding  dic-
198        tionary,  and  2 or 3 Shannon-Fano trees); and four levels of deflating
199        (superfast, fast, normal,  maximum  compression).   zipinfo  represents
200        these  methods  and  their  sub-methods  as follows:  stor; re:1, re:2,
201        etc.; shrk; i4:2, i8:3, etc.; tokn; and defS, defF, defN, and defX.
203        The medium and long listings are almost identical to the  short  format
204        except that they add information on the file's compression.  The medium
205        format lists the file's compression factor as a  percentage  indicating
206        the amount of space that has been ``removed'':
208   -rw-rws---  1.5 unx    2802 t- 81% defX 11-Aug-91 13:48 perms.2660
210        In  this example, the file has been compressed by more than a factor of
211        five; the compressed data are only 19% of the original size.  The  long
212        format gives the compressed file's size in bytes, instead:
214   -rw-rws---  1.5 unx    2802 t-     538 defX 11-Aug-91 13:48 perms.2660
216        In  contrast to the unzip listings, the compressed size figures in this
217        listing format denote the complete size of compressed  data,  including
218        the 12 extra header bytes in case of encrypted entries.
220        Adding the -T option changes the file date and time to decimal format:
222   -rw-rws---  1.5 unx    2802 t-     538 defX 910811.134804 perms.2660
224        Note  that  because  of  limitations in the MS-DOS format used to store
225        file times, the seconds field is always rounded  to  the  nearest  even
226        second.   For  Unix  files this is expected to change in the next major
227        releases of zip(1L) and unzip.
229        In addition to individual file information, a default  zipfile  listing
230        also includes header and trailer lines:
232   Archive:  OS2.zip   5453 bytes   5 files
233   ,,rw,       1.0 hpf     730 b- i4:3 26-Jun-92 23:40 Contents
234   ,,rw,       1.0 hpf    3710 b- i4:3 26-Jun-92 23:33 makefile.os2
235   ,,rw,       1.0 hpf    8753 b- i8:3 26-Jun-92 15:29 os2unzip.c
236   ,,rw,       1.0 hpf      98 b- stor 21-Aug-91 15:34 unzip.def
237   ,,rw,       1.0 hpf      95 b- stor 21-Aug-91 17:51 zipinfo.def
238   5 files, 13386 bytes uncompressed, 4951 bytes compressed:  63.0%
240        The  header line gives the name of the archive, its total size, and the
241        total number of files; the trailer gives the number  of  files  listed,
242        their  total  uncompressed  size,  and their total compressed size (not
243        including any of zip's internal overhead).  If, however,  one  or  more
244        file(s)  are  provided,  the  header  and trailer lines are not listed.
245        This behavior is also similar to that of Unix's ``ls -l'';  it  may  be
246        overridden  by  specifying the -h and -t options explicitly.  In such a
247        case the listing format must also be specified explicitly, since -h  or
248        -t  (or  both)  in  the  absence of other options implies that ONLY the
249        header or trailer line (or both) is listed.  See the  EXAMPLES  section
250        below for a semi-intelligible translation of this nonsense.
252        The  verbose  listing  is  mostly self-explanatory.  It also lists file
253        comments and the zipfile comment, if any, and the type  and  number  of
254        bytes  in  any  stored  extra  fields.   Currently known types of extra
255        fields include PKWARE's authentication  (``AV'')  info;  OS/2  extended
256        attributes;  VMS  filesystem  info,  both PKWARE and Info-ZIP versions;
257        Macintosh resource forks; Acorn/Archimedes SparkFS  info;  and  so  on.
258        (Note  that  in  the case of OS/2 extended attributes--perhaps the most
259        common use of zipfile extra fields--the  size  of  the  stored  EAs  as
260        reported  by  zipinfo may not match the number given by OS/2's dir com-
261        mand: OS/2 always reports the number of bytes required in  16-bit  for-
262        mat, whereas zipinfo always reports the 32-bit storage.)
264        Again,  the  compressed  size figures of the individual entries include
265        the 12 extra header bytes for  encrypted  entries.   In  contrast,  the
266        archive  total  compressed size and the average compression ratio shown
267        in the summary bottom line are calculated without the extra  12  header
268        bytes of encrypted entries.
270 ENVIRONMENT OPTIONS
271        Modifying  zipinfo's default behavior via options placed in an environ-
272        ment variable can be a bit complicated to  explain,  due  to  zipinfo's
273        attempts  to  handle  various  defaults in an intuitive, yet Unix-like,
274        manner.  (Try not to laugh.)  Nevertheless, there  is  some  underlying
275        logic.   In brief, there are three ``priority levels'' of options:  the
276        default options; environment options, which can override or add to  the
277        defaults; and explicit options given by the user, which can override or
278        add to either of the above.
280        The default listing format, as noted above, corresponds roughly to  the
281        "zipinfo  -hst"  command  (except  when  individual zipfile members are
282        specified).  A user who prefers the long-listing format (-l)  can  make
283        use of the zipinfo's environment variable to change this default:
285        Unix Bourne shell:
286               ZIPINFO=-l; export ZIPINFO
288        Unix C shell:
289               setenv ZIPINFO -l
291        OS/2 or MS-DOS:
292               set ZIPINFO=-l
294        VMS (quotes for lowercase):
295               define ZIPINFO_OPTS "-l"
297        If,  in addition, the user dislikes the trailer line, zipinfo's concept
298        of ``negative options'' may be used to override the  default  inclusion
299        of  the  line.   This is accomplished by preceding the undesired option
300        with one or more minuses:  e.g., ``-l-t'' or ``--tl'', in this example.
301        The  first  hyphen  is the regular switch character, but the one before
302        the `t' is a minus sign.  The dual use of hyphens  may  seem  a  little
303        awkward,  but it's reasonably intuitive nonetheless:  simply ignore the
304        first hyphen and go from there.  It is also consistent with the  behav-
305        ior of the Unix command nice(1).
307        As suggested above, the default variable names are ZIPINFO_OPTS for VMS
308        (where the symbol used to install zipinfo as a  foreign  command  would
309        otherwise  be  confused with the environment variable), and ZIPINFO for
310        all other operating systems.  For compatibility  with  zip(1L),  ZIPIN-
311        FOOPT is also accepted (don't ask).  If both ZIPINFO and ZIPINFOOPT are
312        defined, however, ZIPINFO takes precedence.  unzip's diagnostic  option
313        (-v  with  no zipfile name) can be used to check the values of all four
314        possible unzip and zipinfo environment variables.
316 EXAMPLES
317        To get a basic, short-format listing of the complete contents of a  ZIP
318        archive  storage.zip,  with  both header and totals lines, use only the
319        archive name as an argument to zipinfo:
321            zipinfo storage
323        To produce a basic, long-format listing (not verbose), including header
324        and totals lines, use -l:
326            zipinfo -l storage
328        To  list the complete contents of the archive without header and totals
329        lines, either negate the -h and -t options or else specify the contents
330        explicitly:
332            zipinfo --h-t storage
333            zipinfo storage \*
335        (where  the  backslash  is  required  only if the shell would otherwise
336        expand the `*' wildcard, as in Unix when globbing is turned  on--double
337        quotes around the asterisk would have worked as well).  To turn off the
338        totals line by default,  use  the  environment  variable  (C  shell  is
339        assumed here):
341            setenv ZIPINFO --t
342            zipinfo storage
344        To get the full, short-format listing of the first example again, given
345        that the environment variable is set as in the previous example, it  is
346        necessary  to  specify the -s option explicitly, since the -t option by
347        itself implies that ONLY the footer line is to be printed:
349            setenv ZIPINFO --t
350            zipinfo -t storage            [only totals line]
351            zipinfo -st storage           [full listing]
353        The -s option, like -m and -l, includes headers and footers by default,
354        unless  otherwise  specified.  Since the environment variable specified
355        no footers and that has a higher precedence than the  default  behavior
356        of -s, an explicit -t option was necessary to produce the full listing.
357        Nothing was indicated about the header, however, so the -s  option  was
358        sufficient.   Note  that both the -h and -t options, when used by them-
359        selves or with each other,  override  any  default  listing  of  member
360        files;  only  the  header  and/or footer are printed.  This behavior is
361        useful when zipinfo is used with a wildcard zipfile specification;  the
362        contents of all zipfiles are then summarized with a single command.
364        To list information on a single file within the archive, in medium for-
365        mat, specify the filename explicitly:
367            zipinfo -m storage unshrink.c
369        The specification of any member file, as in this example, will override
370        the  default  header and totals lines; only the single line of informa-
371        tion about the requested file will be  printed.   This  is  intuitively
372        what  one would expect when requesting information about a single file.
373        For multiple files, it is often useful to know the total compressed and
374        uncompressed size; in such cases -t may be specified explicitly:
376            zipinfo -mt storage "*.[ch]" Mak\*
378        To  get  maximal  information  about  the  ZIP archive, use the verbose
379        option.  It is usually wise to pipe the output into a  filter  such  as
380        Unix more(1) if the operating system allows it:
382            zipinfo -v storage | more
384        Finally,  to  see  the most recently modified files in the archive, use
385        the -T option in conjunction with an external sorting utility  such  as
386        Unix sort(1) (and sed(1) as well, in this example):
388            zipinfo -T storage | sort -nr -k 7 | sed 15q
390        The -nr option to sort(1) tells it to sort numerically in reverse order
391        rather than in textual order, and the -k 7 option tells it to  sort  on
392        the  seventh  field.  This assumes the default short-listing format; if
393        -m or -l is used, the proper sort(1) option would be -k 8.  Older  ver-
394        sions  of  sort(1)  do  not  support the -k option, but you can use the
395        traditional + option instead, e.g., +6 instead  of  -k 7.   The  sed(1)
396        command  filters out all but the first 15 lines of the listing.  Future
397        releases of zipinfo may incorporate date/time and filename  sorting  as
398        built-in options.
400 TIPS
401        The  author  finds  it  convenient to define an alias ii for zipinfo on
402        systems that allow aliases (or, on other systems, copy/rename the  exe-
403        cutable, create a link or create a command file with the name ii).  The
404        ii usage parallels the common ll alias for long listings in  Unix,  and
405        the similarity between the outputs of the two commands was intentional.
407 BUGS
408        As with unzip, zipinfo's -M (``more'') option is overly  simplistic  in
409        its  handling  of screen output; as noted above, it fails to detect the
410        wrapping of long lines and may thereby cause lines at the  top  of  the
411        screen to be scrolled off before being read.  zipinfo should detect and
412        treat each occurrence of line-wrap  as  one  additional  line  printed.
413        This  requires  knowledge  of the screen's width as well as its height.
414        In addition, zipinfo should detect the true screen geometry on all sys-
415        tems.
417        zipinfo's  listing-format  behavior is unnecessarily complex and should
418        be simplified.  (This is not to say that it will be.)
420 SEE ALSO
421        ls(1), funzip(1L), unzip(1L), unzipsfx(1L), zip(1L), zipcloak(1L), zip-
422        note(1L), zipsplit(1L)
425        The Info-ZIP home page is currently at
426            http://www.info-zip.org/pub/infozip/
427        or
428            ftp://ftp.info-zip.org/pub/infozip/ .
430 AUTHOR
431        Greg  ``Cave Newt'' Roelofs.  ZipInfo contains pattern-matching code by
432        Mark Adler and fixes/improvements by many others.  Please refer to  the
433        CONTRIBS  file  in  the  UnZip  source distribution for a more complete
434        list.
436 Info-ZIP                     20 April 2009 (v3.0)                  ZIPINFO(1L)