LinuxCommandLibrary

cabextract

Extract files from Microsoft Cabinet (.cab) archives

SYNOPSIS

cabextract [OPTION]... [FILE]...

PARAMETERS

-d, --directory=DIR
    Extract to DIR instead of current directory

-F, --file=PATTERN
    Extract only files matching PATTERN

-f, --filter
    Extract only LZX-compressed files

-l, --list
    List archive contents only, do not extract

-L, --lower-case
    Convert filenames to lowercase

-m, --mount
    Mount first file as filesystem (Linux/FUSE only)

-n, --no-overwrite
    Do not overwrite existing files

-q, --quiet
    Suppress output messages

-t, --test
    Test archive integrity only

-u, --unconditional
    Overwrite files without prompting

-v, --verbose
    Print extra file information during extraction

-z, --zlib
    Use zlib for decompression (experimental)

--help
    Display help and exit

--version
    Display version information and exit

DESCRIPTION

cabextract is a command-line utility designed to extract files from Microsoft Cabinet (.CAB) archives, commonly used in Windows software distribution, updates, and driver installations. These archives often employ compression methods like MSZIP, Quantum, or LZX, and cabextract handles single and multi-part cabinets seamlessly.

It is particularly useful on Linux and Unix-like systems where native support for .CAB files is absent, allowing users to access Windows package contents without emulation layers like Wine. Key features include listing archive contents, testing integrity, selective extraction by pattern or compression type, directory specification, filename case conversion, and overwrite controls. Verbose output aids debugging, while quiet mode suits scripting.

The tool is lightweight, dependency-minimal (relies on libmspack), and integrates well into package management or forensic workflows. For instance, it extracts Office patches or IE updates for analysis. Limitations include no support for encrypted cabinets and experimental zlib mode. Widely packaged in distros like Debian and Fedora.

CAVEATS

No support for password-protected or encrypted .CAB files. --mount requires FUSE and Linux kernel. Some rare cabinet formats may fail. --zlib mode is experimental and unstable.

EXIT STATUS

0 on success, 1 on error or invalid usage.
Non-zero also for test failures or overwrite prompts (unless -u).

MULTIPLE FILES

Processes multiple .CAB files sequentially; supports cabinet sets (.CAB, .CA0 etc.).

HISTORY

Developed by Stuart Caie as part of libmspack library (2003-2004). Version 1.11 released 2021. Maintained for compatibility with Windows cabinets; available in most Linux repos since mid-2000s.

SEE ALSO

7z(1), unar(1), unzip(1)

Copied to clipboard