Working with compressed archives in the Linux terminal often feels like a memory test for arcane command-line flags: is extracting a .tar.gz archive tar -xzvf or tar -xvf? What about a .tar.bz2 or a .7z archive? Switching between different tools like unzip, tar, gzip, and p7zip creates unnecessary mental friction. ouch is an open-source, CLI compression utility written in Rust that unifies all compression and decompression workflows under intuitive, format-agnostic commands.
Installing ouch on Linux Distributions
ouch is distributed across modern package repositories and through cargo:
- Arch Linux: Install directly from the official repositories:
sudo pacman -S ouch - Cargo (Universal): If you have Rust installed:
cargo install ouch - Binary Releases: Download pre-compiled static binaries from GitHub releases and place the executable inside
/usr/local/bin/.
Decompressing Any Archive Without Complex Flags
ouch automatically detects the compression algorithm by inspecting file headers and extensions:
- To extract any supported archive (whether
.zip,.tar.gz,.tar.xz, or.tar.zst), simply run:ouch decompress archive.tar.gz - To unpack multiple archives simultaneously into their own dedicated directories:
ouch decompress package1.zip package2.tar.xz --dir extracted_files/ ouchprotects against “tarbombs”—archives that dump hundreds of loose files into your current directory—by automatically creating a containing folder if multiple top-level items exist.
Compressing Files and Folders Intuitively
Creating compressed archives is equally straightforward. ouch determines the desired compression format purely from the target filename extension you provide:
- Create a Zip Archive:
ouch compress folder/ backup.zip - Create a Highly Compressed XZ Tarball:
ouch compress project/ project.tar.xz - Create a Modern Fast Zstandard Archive:
ouch compress logs/ logs.tar.zst
Adopting ouch eliminates terminal archive confusion forever, delivering a seamless, high-performance compression experience across all your Linux workstations.