Respect the `NO_COLOR` env. arg.
[ouch.git] / README.md
blobb3f32aef651767f10858e3b60ec466bae4ad3584
1 # Ouch!
3 <!-- ![ouch_image](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR5ilNDTFZZ-Vy_ctm2YyAe8Yk0UT7lB2hIhg&usqp=CAU)  -->
5 `ouch` loosely stands for Obvious Unified Compression files Helper.
7 It is an easy and painless way of compressing and decompressing files in the terminal.
9 Works in `Linux`, `Mac OS` and `Windows`.
11 <!--     - [Listing files](#Listing-the-elements-of-an-archive) -->
13 - [Usage](#Usage)
14     - [Decompressing files](#Decompressing-files)
15     - [Compressing files/directories](#Compressing-files-and-directories)
16 - [Installation](#Installation)
17 - [Supported Formats](#Supported-formats)
18 - [Supported operating systems](#Supported-operating-systems)
20 ## Usage
22 ### Decompressing
24 Run `ouch` and pass compressed files as arguments.
26 ```sh
27 # Decompress `a.zip`
28 ouch a.zip
30 # Decompress multiple files
31 ouch a.zip b.tar.gz
32 ```
34 Use the `-o/--output` flag to redirect the output of decompressions to a folder.
36 ```sh
37 # Decompress multiple files but inside new_folder
38 ouch a.zip  b.tar.gz  c.tar.bz2 -o new_folder
39 ```
41 ### Compressing
43 Use the `compress` subcommand.
45 Accepts files and folders, and the **last** argument shall be the **output file**.
47 ```sh
48 # Compress four files into `archive.zip`
49 ouch compress 1 2 3 4 archive.zip
50 ```
52 The supplied **output file** shall have a supported compression format, [see the list](#Supported-formats).
54 You can also use the `c` alias for this subcommand.
56 ```sh
57 # Compress a folder and a file into `videos.tar.xz`
58 ouch c Videos/ funny_meme.mp4 videos.tar.xz
60 # Compress three files into a `.tar.bz2` archive
61 ouch c a.mp4 b.jpg c.png files.tar.bz2
63 # Compress two folders into a lzma file
64 ouch c src/ target/ build.tar.lz
65 ```
67 <!-- ### Listing the elements of an archive
69 * **Upcoming feature**
71 ```
72 # Shows the files and folders contained in videos.tar.xz
73 ouch list videos.tar.xz
74 ``` -->
76 ## Installation
78 ### Installing a binary
80 This script downloads the latest binary and copies it to `/usr/bin`.
81 ```sh
82 curl -s https://raw.githubusercontent.com/vrmiguel/ouch/master/install.sh | sh
83 ```
85 ### Compiling
86 Install [Rust](rust-lang.org) and [Cargo](https://doc.rust-lang.org/cargo/) via [rustup.rs](https://rustup.rs/).
88 From latest official release:
89 ```sh
90 cargo install ouch
91 ```
93 From repository source code:
95 ```sh
96 git clone https://github.com/vrmiguel/ouch
97 cargo build
98 ```
100 ## Supported formats
102 |               | .tar | .zip | .tar.\*¹ | .zip.\*² | .bz, .bz2 | .gz | .xz, .lz, .lzma | .7z |
103 |:-------------:|:----:|:----:|:--------:|:--------:|:---------:| --- |:---------------:| --- |
104 | Decompression |  ✓   |  ✓   |    ✓     |    ✓     |     ✓     | ✓   |        ✓        | ✗   |
105 |  Compression  |  ✓   |  ✓   |    ✓     |    ✓     |     ✓     | ✓   |        ✓        | ✗   |
108 Note: .tar.*¹: .tar.gz, .tar.bz, .tar.bz2, .tar.xz, .tar.lz, .tar.lzma, .tar.zip
109       .zip.*²: .zip.gz, .zip.bz, .zip.bz2, .zip.xz, .zip.lz, .zip.lzma, .zip.zip
112 <!-- ## Supported operating systems
114 `ouch` runs on Linux, macOS and Windows 10. Binaries are available on our [Releases](https://github.com/vrmiguel/ouch/releases) page.
116 Binaries are also available at the end of each (successful) [GitHub Actions](https://github.com/vrmiguel/ouch/actions) run for these targets:
118 * Linux x86-64 statically linked (musl libc) 
119 * macOS x86-64 dynamically linked
120 * Windows 10
121 * Linux ARMv7 dynamically linked (glibc)
123 One must be logged into GitHub to access build artifacts. -->