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