3.3 KiB
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.
Note
- This README represents the new, but not yet implemented, interface that
ouch
will use. - For current usage instructions, check the old README.
Usage
ouch
uses the file extensions to infer the file formats.
For example, ouch compress a b c.zip
tells to compress a
and b
into the same c.zip
compressed file.
Decompressing files
To decompress, just call ouch
passing the input files.
Use the -o, --output
flag to redirect the output 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 -o new_folder
Compressing files and directories
The compress
subcommand accepts files and folders where the last one is the desired output file.
# Compress four files into `archive.zip`
ouch compress a b c d archive.zip
# Compress three files into `.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
Converting between compressed archives
# Will decompress a.tar.gz b.tar.bz and compress it into new-archive.tar.xz2
ouch convert a.tar.gz b.tar.bz new-archive.tar.xz2
Listing the elements of an archive
(TODO -- not implemented at all)
# Shows the files contained in videos.tar.xz
ouch list videos.tar.xz
1. .....
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
. Go to rustup.rs to get it.
Once Cargo is installed, run:
cargo install ouch
# or
git clone https://github.com/vrmiguel/ouch
cargo install --path ouch
Supported operating systems
Limitations
ouch
does encoding and decoding in-memory, so decompressing very large files with it is not advisable.