Skip to content

ouch-org/ouch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ouch!

ouch loosely stands for Obvious Unified Compression (ᵃⁿᵈ ᵈᵉᶜᵒᵐᵖʳᵉˢˢᶦᵒⁿ) Helper and aims to be an easy and intuitive way of compressing and decompressing files on the command-line.

Usage

Decompressing files

To decompress any number of files, just supply them to ouch.

Use the -o, --output flag to redirect the output of decompressions to a folder.

# Decompress `a.zip`
ouch a.zip

# Decompress multiple files
ouch a.zip b.tar.gz

# Decompress multiple files but inside new_folder
ouch a.zip  b.tar.gz  c.tar.bz2 -o new_folder

Compressing files and directories

The compress subcommand is able to compress files and folders. The last argument will be the output file.

The compression format employed will be defined according to the output file's extension.

# Compress four files into `archive.zip`
ouch compress a b c d archive.zip

# Compress three files into a `.tar.bz2` archive
ouch compress a.mp4 b.jpg c.png files.tar.bz2

# Compress a folder and a file into `videos.tar.xz`
ouch compress Videos/ funny_meme.mp4 videos.tar.xz

Listing the elements of an archive

(TODO -- not implemented at all)

# Shows the files and folders contained in videos.tar.xz
ouch list videos.tar.xz

Supported formats

.tar .zip .tar.*¹ .zip.*² .bz, .bz2 .gz .xz, .lz, .lzma .7z
Decompression
Compression
Note: .tar.*¹: .tar.gz, .tar.bz, .tar.bz2, .tar.xz, .tar.lz, .tar.lzma, .tar.zip
      .zip.*²: .zip.gz, .zip.bz, .zip.bz2, .zip.xz, .zip.lz, .zip.lzma, .zip.zip

Installation

Getting a pre-compiled binary

curl -s https://raw.githubusercontent.com/vrmiguel/ouch/master/install.sh | bash

Building

A recent Rust toolchain is needed to build ouch. You can install it following the instructions at rustup.rs.

Once Cargo is installed, run:

cargo install ouch
# or 
git clone https://github.com/vrmiguel/ouch
cargo install --path ouch
# or
git clone https://github.com/vrmiguel/ouch
cd ouch && cargo run --release

Supported operating systems

ouch runs on Linux, macOS and Windows 10. Binaries are available on our Releases page. Binaries are also available at the end of each (successful) GitHub Actions run.

Note on Windows: colors are currently messed up on PowerShell but work fine on ConEmu. A feature for disabling colors is planned.

Limitations

ouch does encoding and decoding in-memory, so decompressing very large files with it is not advisable.