Skip to content
forked from ouch-org/ouch

Painless compression and decompression in the terminal

License

Notifications You must be signed in to change notification settings

SpyrosRoum/ouch

Repository files navigation

Ouch!

crates.io license

ouch stands for Obvious Unified Compression Helper, it's a CLI tool to compress and decompress files.

Features

  1. Easy to use.
  2. Automatic format detection.
  3. Same syntax, various formats.
  4. Encoding and decoding streams, it's fast.
  5. No runtime dependencies (for Linux x86_64).
  6. Listing archive contents with tree formatting (in next release!).

Usage

Decompressing

Use the decompress subcommand and pass the files.

# Decompress one
ouch decompress a.zip

# Decompress multiple
ouch decompress a.zip b.tar.gz c.tar

# Short alternative
ouch d a.zip

You can redirect the decompression results to another folder with the -d/--dir flag.

# Decompress 'summer_vacation.zip' inside of new folder 'pictures'
ouch decompress summer_vacation.zip -d pictures

Compressing

Use the compress subcommand, pass the files and the output file at the end.

# Compress four files/folders
ouch compress 1 2 3 4 archive.zip

# Short alternative
ouch c file.txt file.zip

# Compress everything in the current folder again and again
ouch compress * everything.tar.gz.xz.bz.zst.gz.gz.gz.gz.gz

ouch checks for the extensions of the output file to decide which formats should be used.

Installation

Packaging status

Downloading the latest binary

Compiled for x86_64 on Linux, Mac OS and Windows, run with curl or wget.

Method Command
curl curl -s https://raw.githubusercontent.com/ouch-org/ouch/master/install.sh | sh
wget wget https://raw.githubusercontent.com/ouch-org/ouch/master/install.sh -O - | sh

The script will download the latest binary and copy it to /usr/bin.

Installing from source code

For compiling, check the wiki guide.

Supported formats

Format .tar .zip .bz, .bz2 .gz .lz4 .xz, .lz, .lzma .zst
Supported

And the aliases: tgz, tbz, tbz2, tlz4, txz, tlz, tlzma, tzst.

Formats can be chained (ouch keeps it fast):

  • .gz.xz.bz.zst
  • .tar.gz.xz.bz.zst
  • .tar.gz.gz.gz.gz.xz.xz.xz.xz.bz.bz.bz.bz.zst.zst.zst.zst

Contributing

ouch is 100% made out of voluntary work, any small contribution is welcome!

  • Open an issue.
  • Open a pull request.
  • Share it to a friend!

About

Painless compression and decompression in the terminal

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 95.7%
  • Shell 4.0%
  • Nix 0.3%