Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6725 | siemargl | 1 | ZIPINFO(1L) ZIPINFO(1L) |
2 | |||
3 | NAME |
||
4 | zipinfo - list detailed information about a ZIP archive |
||
5 | |||
6 | SYNOPSIS |
||
7 | zipinfo [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...] |
||
8 | |||
9 | unzip -Z [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...] |
||
10 | |||
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. |
||
23 | |||
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: |
||
31 | |||
32 | * matches a sequence of 0 or more characters |
||
33 | |||
34 | ? matches exactly 1 character |
||
35 | |||
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. |
||
45 | |||
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. |
||
53 | |||
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. |
||
61 | |||
62 | [-x xfile(s)] |
||
63 | An optional list of archive members to be excluded from process- |
||
64 | ing. |
||
65 | |||
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. |
||
70 | |||
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. |
||
75 | |||
76 | -s list zipfile info in short Unix ``ls -l'' format. This is the |
||
77 | default behavior; see below. |
||
78 | |||
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. |
||
82 | |||
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. |
||
86 | |||
87 | -v list zipfile information in verbose, multi-page format. |
||
88 | |||
89 | -h list header line. The archive name, actual size (in bytes) and |
||
90 | total number of files is printed. |
||
91 | |||
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. |
||
105 | |||
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. |
||
115 | |||
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). |
||
120 | |||
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. |
||
127 | |||
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. |
||
131 | |||
132 | -z include the archive comment (if any) in the listing. |
||
133 | |||
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: |
||
138 | |||
139 | -rw-rws--- 1.9 unx 2802 t- defX 11-Aug-91 13:48 perms.2660 |
||
140 | |||
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. |
||
146 | |||
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. |
||
151 | |||
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: |
||
168 | |||
169 | RWD,R,R 0.9 vms 168 Bx shrk 9-Aug-91 19:15 perms.0644 |
||
170 | |||
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: |
||
179 | |||
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 |
||
183 | |||
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. |
||
192 | |||
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. |
||
202 | |||
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'': |
||
207 | |||
208 | -rw-rws--- 1.5 unx 2802 t- 81% defX 11-Aug-91 13:48 perms.2660 |
||
209 | |||
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: |
||
213 | |||
214 | -rw-rws--- 1.5 unx 2802 t- 538 defX 11-Aug-91 13:48 perms.2660 |
||
215 | |||
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. |
||
219 | |||
220 | Adding the -T option changes the file date and time to decimal format: |
||
221 | |||
222 | -rw-rws--- 1.5 unx 2802 t- 538 defX 910811.134804 perms.2660 |
||
223 | |||
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. |
||
228 | |||
229 | In addition to individual file information, a default zipfile listing |
||
230 | also includes header and trailer lines: |
||
231 | |||
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% |
||
239 | |||
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. |
||
251 | |||
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.) |
||
263 | |||
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. |
||
269 | |||
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. |
||
279 | |||
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: |
||
284 | |||
285 | Unix Bourne shell: |
||
286 | ZIPINFO=-l; export ZIPINFO |
||
287 | |||
288 | Unix C shell: |
||
289 | setenv ZIPINFO -l |
||
290 | |||
291 | OS/2 or MS-DOS: |
||
292 | set ZIPINFO=-l |
||
293 | |||
294 | VMS (quotes for lowercase): |
||
295 | define ZIPINFO_OPTS "-l" |
||
296 | |||
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). |
||
306 | |||
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. |
||
315 | |||
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: |
||
320 | |||
321 | zipinfo storage |
||
322 | |||
323 | To produce a basic, long-format listing (not verbose), including header |
||
324 | and totals lines, use -l: |
||
325 | |||
326 | zipinfo -l storage |
||
327 | |||
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: |
||
331 | |||
332 | zipinfo --h-t storage |
||
333 | zipinfo storage \* |
||
334 | |||
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): |
||
340 | |||
341 | setenv ZIPINFO --t |
||
342 | zipinfo storage |
||
343 | |||
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: |
||
348 | |||
349 | setenv ZIPINFO --t |
||
350 | zipinfo -t storage [only totals line] |
||
351 | zipinfo -st storage [full listing] |
||
352 | |||
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. |
||
363 | |||
364 | To list information on a single file within the archive, in medium for- |
||
365 | mat, specify the filename explicitly: |
||
366 | |||
367 | zipinfo -m storage unshrink.c |
||
368 | |||
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: |
||
375 | |||
376 | zipinfo -mt storage "*.[ch]" Mak\* |
||
377 | |||
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: |
||
381 | |||
382 | zipinfo -v storage | more |
||
383 | |||
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): |
||
387 | |||
388 | zipinfo -T storage | sort -nr -k 7 | sed 15q |
||
389 | |||
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. |
||
399 | |||
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. |
||
406 | |||
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. |
||
416 | |||
417 | zipinfo's listing-format behavior is unnecessarily complex and should |
||
418 | be simplified. (This is not to say that it will be.) |
||
419 | |||
420 | SEE ALSO |
||
421 | ls(1), funzip(1L), unzip(1L), unzipsfx(1L), zip(1L), zipcloak(1L), zip- |
||
422 | note(1L), zipsplit(1L) |
||
423 | |||
424 | URL |
||
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/ . |
||
429 | |||
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. |
||
435 | |||
436 | Info-ZIP 20 April 2009 (v3.0) ZIPINFO(1L) |