Add unzip(1). If you can't beat 'em, join 'em
[dragonfly.git] / usr.bin / unzip / unzip.1
1 .\"-
2 .\" Copyright (c) 2007-2008 Dag-Erling Smørgrav
3 .\" All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\"
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 .\" SUCH DAMAGE.
25 .\"
26 .\" $FreeBSD: head/usr.bin/unzip/unzip.1 294107 2016-01-15 22:58:23Z ak $
27 .\"
28 .Dd December 12, 2015
29 .Dt UNZIP 1
30 .Os
31 .Sh NAME
32 .Nm unzip
33 .Nd extract files from a ZIP archive
34 .Sh SYNOPSIS
35 .Nm
36 .Op Fl aCcfjLlnopqtuvy
37 .Op Fl d Ar dir
38 .Ar zipfile
39 .Sh DESCRIPTION
40 .\" ...
41 The following options are available:
42 .Bl -tag -width Fl
43 .It Fl a
44 When extracting a text file, convert DOS-style line endings to
45 Unix-style line endings.
46 .It Fl C
47 Match file names case-insensitively.
48 .It Fl c
49 Extract to stdout/screen.
50 When extracting files from the zipfile, they are written to stdout.
51 This is similar to
52 .Fl p ,
53 but does not suppress normal output.
54 .It Fl d Ar dir
55 Extract files into the specified directory rather than the current
56 directory.
57 .It Fl f
58 Update existing.
59 Extract only files from the zipfile if a file with the same name
60 already exists on disk and is older than the former.
61 Otherwise, the file is silently skipped.
62 .It Fl j
63 Ignore directories stored in the zipfile; instead, extract all files
64 directly into the extraction directory.
65 .It Fl L
66 Convert the names of the extracted files and directories to lowercase.
67 .It Fl l
68 List, rather than extract, the contents of the zipfile.
69 .It Fl n
70 No overwrite.
71 When extracting a file from the zipfile, if a file with the same name
72 already exists on disk, the file is silently skipped.
73 .It Fl o
74 Overwrite.
75 When extracting a file from the zipfile, if a file with the same name
76 already exists on disk, the existing file is replaced with the file
77 from the zipfile.
78 .It Fl p
79 Extract to stdout.
80 When extracting files from the zipfile, they are written to stdout.
81 The normal output is suppressed as if
82 .Fl q
83 was specified.
84 .It Fl q
85 Quiet: print less information while extracting.
86 .It Fl t
87 Test: do not extract anything, but verify the checksum of every file
88 in the archive.
89 .It Fl u
90 Update.
91 When extracting a file from the zipfile, if a file with the same name
92 already exists on disk, the existing file is replaced with the file
93 from the zipfile if and only if the latter is newer than the former.
94 Otherwise, the file is silently skipped.
95 .It Fl v
96 List verbosely, rather than extract, the contents of the zipfile.
97 This differs from
98 .Fl l
99 by using the long listing.
100 Note that most of the data is currently fake and does not reflect the
101 content of the archive.
102 .It Fl x Ar pattern
103 Exclude files matching the pattern
104 .Ar pattern .
105 .It Fl y
106 Print four digit years in listings instead of two.
107 .It Fl Z Ar mode
108 Emulate
109 .Xr zipinfo 1L
110 mode.
111 Enabling
112 .Xr zipinfo 1L
113 mode changes the way in which additional arguments are parsed.
114 Currently only
115 .Xr zipinfo 1L
116 mode 1 is supported, which lists the file names one per line.
117 .El
118 .Pp
119 Note that only one of
120 .Fl n ,
121 .Fl o ,
122 and
123 .Fl u
124 may be specified.
125 If specified filename is
126 .Qq - ,
127 then data is read from
128 .Va stdin .
129 .Sh ENVIRONMENT
130 If the
131 .Ev UNZIP_DEBUG
132 environment variable is defined, the
133 .Fl q
134 command-line option has no effect, and additional debugging
135 information will be printed to
136 .Va stderr .
137 .Sh COMPATIBILITY
138 The
139 .Nm
140 utility aims to be sufficiently compatible with other implementations
141 to serve as a drop-in replacement in the context of the
142 .Xr ports 7
143 system.
144 No attempt has been made to replicate functionality which is not
145 required for that purpose.
146 .Pp
147 For compatibility reasons, command-line options will be recognized if
148 they are listed not only before but also after the name of the
149 zipfile.
150 .Pp
151 Normally, the
152 .Fl a
153 option should only affect files which are marked as text files in the
154 zipfile's central directory.
155 Since the
156 .Xr archive 3
157 library does not provide access to that information, it is not available
158 to the
159 .Nm
160 utility.
161 Instead, the
162 .Nm
163 utility will assume that a file is a text file if no non-ASCII
164 characters are present within the first block of data decompressed for
165 that file.
166 If non-ASCII characters appear in subsequent blocks of data, a warning
167 will be issued.
168 .Pp
169 The
170 .Nm
171 utility is only able to process ZIP archives handled by
172 .Xr libarchive 3 .
173 Depending on the installed version of
174 .Xr libarchive ,
175 this may or may not include self-extracting archives.
176 .Sh SEE ALSO
177 .Xr libarchive 3
178 .Sh HISTORY
179 The
180 .Nm
181 utility appeared in
182 .Fx 8.0
183 and
184 .Dx 4.5 .
185 .Sh AUTHORS
186 The
187 .Nm
188 utility and this manual page were written by
189 .An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org .
190 It uses the
191 .Xr archive 3
192 library developed by
193 .An Tim Kientzle Aq Mt kientzle@FreeBSD.org .