UNZIP(1)

NAME
unzip - extract files from a ZIP archive

SYNOPSIS
unzip [-aCcfjLlnopqtuvy] [-d dir] [-x pattern] zipfile

DESCRIPTION
The following options are available:

-a  When extracting a text file, convert DOS-style line endings to Unix-style line endings.

-C  Match file names case-insensitively.

-c  Extract to stdout/screen. When extracting files from the zipfile, they are written to stdout. This is similar to -p, but doesn't suppress normal output.

-d dir
    Extract files into the specified directory rather than the current directory.

-f  Update existing. Extract only files from the zipfile if a file with the same name already exists on disk and is older than the former. Otherwise, the file is silently skipped.

-j  Ignore directories stored in the zipfile; instead, extract all files directly into the extraction directory.

-L  Convert the names of the extracted files and directories to lowercase.

-l  List, rather than extract, the contents of the zipfile.

-n  No overwrite. When extracting a file from the zipfile, if a file with the same name already exists on disk, the file is silently skipped.

-o  Overwrite. When extracting a file from the zipfile, if a file with the same name already exists on disk, the existing file is replaced with the file from the zipfile.

-p  Extract to stdout. When extracting files from the zipfile, they are written to stdout. The normal output is suppressed as if -q was specified.

-P password
    Extract encrypted files using a password. Putting a password on the command line using this option can be insecure.

-q  Quiet: print less information while extracting.

-t  Test: do not extract anything, but verify the checksum of every file in the archive.

-u  Update. When extracting a file from the zipfile, if a file with the same name already exists on disk, the existing file is replaced with the file from the zipfile if and only if the latter is newer than the former. Otherwise, the file is silently skipped.

-v  List verbosely, rather than extract, the contents of the zipfile. This differs from -l by using the long listing. Note that most of the data is currently fake and does not reflect the content of the archive.

-x pattern
    Exclude files matching the pattern pattern.

-y  Print four digit years in listings instead of two.

Note that only one of -n, -o, and -u may be specified.

ENVIRONMENT
If the UNZIP_DEBUG environment variable is defined, the -q command-line option has no effect, and additional debugging information will be printed to stderr.

COMPATIBILITY
The unzip utility aims to be sufficiently compatible with other implementations to serve as a drop-in replacement in the context of the pkgsrc(7) system. No attempt has been made to replicate functionality which is not required for that purpose.

For compatibility reasons, command-line options will be recognized if they are listed not only before but also after the name of the zipfile.

Normally, the -a option should only affect files which are marked as text files in the zipfile's central directory. Since the archive(3) library does not provide access to that information, it is not available to the unzip utility. Instead, the unzip utility will assume that a file is a text file if no non-ASCII characters are present within the first block of data decompressed for that file. If non-ASCII characters appear in subsequent blocks of data, a warning will be issued.

The unzip utility is only able to process ZIP archives handled by libarchive(3). Depending on the installed version of libarchive(3), this may or may not include self-extracting or ZIPX archives.

SEE ALSO
libarchive(3)

HISTORY
The unzip utility appeared in NetBSD 6.0.

AUTHORS
The unzip utility and this manual page were written by Dag-Erling Smørgrav <des@FreeBSD.org>. It uses the archive(3) library developed by Tim Kientzle <kientzle@FreeBSD.org>.

BUGS
The unzip utility currently does not support asking the user whether to overwrite or skip a file that already exists on disk. To be on the safe side, it will fail if it encounters a file that already exists and neither the -n nor the -o command line option was specified.