PATOOL(1)

NAME
patool - portable archive file manager for the command line

SYNOPSIS
 patool [global-options] (list|test|extract|create|diff|search|repack|formats|version) [command-options] [command-arguments]...

DESCRIPTION
Various archive formats can be created, extracted, tested, listed, searched, repacked and compared by patool. The advantage of patool is its simplicity in handling archive files without having to remember a myriad of programs and options.

The archive format is determined by the file(1) program and as a fallback by the archive file extension.

patool supports 7z (.7z, .cb7), ACE (.ace, .cba), ADF (.adf), ALZIP (.alz), APE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), BZIP3 (.bz3), CAB (.cab), CHM (.chm), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms), FLAC (.flac), FREEARC (.arc), GZIP (.gz), ISO (.iso), LRZIP (.lrz), LZH (.lha, .lzh), LZIP (.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar, .cbr), RZIP (.rz), SHN (.shn), TAR (.tar, .cbt), UDF (.udf), XZ (.xz), ZIP (.zip, .jar, .cbz), ZOO (.zoo), ZPAQ (.zpaq) and ZSTANDARD (.zst) archive formats.
It relies on helper applications to handle those archive formats (for example xz for XZ (.xz) archives).

The archive formats BZIP2, GZIP, TAR, XZ and ZIP are supported natively and do not require helper applications to be installed. When using Python >= 3.14 the ZSTANDARD archive format is also supported natively.

EXAMPLES
  patool extract archive.zip otherarchive.rar
  patool --verbose test dist.tar.gz
  patool list package.deb
  patool --verbose create myfiles.zip file1.txt dir/
  patool diff release1.0.tar.xz release2.0.zip
  patool search "def urlopen" python-3.3.tar.gz
  patool repack linux-2.6.33.tar.gz linux-2.6.33.tar.bz2

GLOBAL OPTIONS

-v, --verbose
    Display more info about what patool does, and display the output of helper applications. Can be given multiple times to increase the output even more.

-q, --quiet
    Work quietly, except the commands formats and version still print their output. Conflicts with --verbose. If given twice suppresses error output from archive commands.

--non-interactive
    Try to prevent any interactive user input (i.e. prompting for passwords or for overwriting duplicate files). Use this option with care since overwriting files or ignoring password prompts could lead to unintended consequences.
    This only works for archive programs that allow preventing user prompts. Currently those are arj, 7z and rar.

COMMANDS
The following rules apply to all commands:

•   Existing files are never overwritten.

•   The original archive will never be removed.

•   Files outside the output directory will never be created. This relies on archive program options to prevent unpacking of files with an absolute path name (e.g. --no-absolute-filenames for cpio(1)).

The following commands are available.

  extract
patool extract [--outdir directory] [--password password] <archive>...

Extract files from given archives. The original archives will never be removed and are left as is.

--outdir directory
    Extract to the given output directory. Default is to extract to the current working directory.

--password password
    Use given password for password-protected archives.

If the archive contains exactly one file or directory, the archive contents are extracted directly to the output directory. Else the files are extracted in a newly created subdirectory of the output directory. The new directory is named after the archive filename without the extension.
This prevents cluttering the output directory with a lot of files from the extracted archive.

All extracted files are ensured that they are readable by the current user.

If extracting an archive has an error in the middle of operation, patool does not remove the temporary extraction directory This directory whose name starts with Unpack_ has all files that have been extracted before the error.

  list
patool list [--password password] <archive>...

--password password
    Use given password for password-protected archives.

List files in archives.

  create
patool create [--password password] <archive> <file-or-directory>...

--password password
    Use given password for password-protected archives.

Create an archive from given files. All of the given files to add to the archive must be readable by the current user. The format of the archive to create is determined by the archive file extension. If the archive program has options to maximize file compression, patool uses those options.

  test
patool test [--password password] <archive>...

--password password
    Use given password for password-protected archives.

Test the given archives. If the helper application does not support testing, the archive contents are listed instead.

  diff
patool diff <archive1> <archive2>

Show differences between two archives with the diff(1) program. The diff options used are -urN.

  search
patool search [--password password] <pattern> <archive>

--password password
    Use given password for password-protected archives.

Unpack the given archive in a temporary directory and search in archive contents for given pattern using the grep(1) program. The grep options used are -r; additional options can be supplied with the GREP_OPTIONS environment variable.

  repack
patool repack <archive> <archive_new>

Extract and re-compress archive to a different format. The target archive format is determined by the file extension of archive_new.

  formats
patool formats

Show all supported archive formats (i.e. which helper applications are available).

  version
patool version

Print version information.

HELP OPTION
Specifying the help option -h or --help displays help for patool itself, or a command.
For example:
  patool -h - display help for patool
  patool extract --help - display help for the extract command

AUTHOR
Bastian Kleineidam <bastian.kleineidam@web.de>

COPYRIGHT
Copyright © 2010-2026 Bastian Kleineidam