A modern replacement for ‘ls’.
Go to file
David Celis def48dc6b9 Add a man page entry for exa
This patch adds a manual page that can be parsed and outputted by the
`man` command. The help command is useful, but many UNIX users have a
certain reflex to check for manual pages. It would be awesome to be able
to type `man exa` and see some output! Some notes:

 * This manual page was hand crafted. I had hoped to find some Rust
   utility that could generate manual pages to prevent having to change
   this file whenever changes to options are made. There are tools to
   write manual pages in a nicer syntax and then convert them into the
   groff syntax, but I hesitated to add more tools to the build process.
   This might make the file more difficult to maintain, but unless exa's
   signature changes frequently, it should be okay.
 * The manual page isn't automatically copied into the
   /usr/local/share/man/man1 directory, where it would need to be for
   `man` to read it. My first inkling to have installation be a nice
   process would be to craft a Makefile that will run `cargo build
   --release`, copy the binary into /usr/local/bin, and copy the man
   page into the aforementioned directory. I can handle that in this PR
   or another one if you like the idea of a Makefile to ease
   installation!

Signed-off-by: David Celis <me@davidcel.is>
2015-02-23 13:42:23 -05:00
man Add a man page entry for exa 2015-02-23 13:42:23 -05:00
src Allow --tree without --recurse 2015-02-23 16:08:51 +00:00
.gitignore Upgrade to latest ansi_term 2014-11-26 07:36:09 +00:00
.travis.yml Leverage new Travis support for Rust 2014-11-23 23:50:26 +00:00
Cargo.lock FIX bitflags depedency 2015-02-21 17:59:38 -05:00
Cargo.toml Enable lto in release versions. 2015-02-22 20:05:21 -05:00
LICENCE Update LICENCE 2014-07-02 22:07:09 +01:00
README.md Instruct users to build the release version (it's a little faster). 2015-02-22 20:02:42 -05:00
screenshot.png Use brighter colours in screenshot 2014-12-18 07:16:27 +00:00

exa Build status

exa is a replacement for ls written in Rust.

Screenshot

Screenshot of exa

Options

  • -1, --oneline: display one entry per line
  • -a, --all: show dot files
  • -b, --binary: use binary (power of two) file sizes
  • -B, --bytes: list file sizes in bytes, without prefixes
  • -d, --list-dirs: list directories as regular files
  • -g, --group: show group as well as user
  • -h, --header: show a header row
  • -H, --links: show number of hard links column
  • -i, --inode: show inode number column
  • -l, --long: display extended details and attributes
  • -r, --reverse: reverse sort order
  • -R, --recurse: recurse into subdirectories
  • -s, --sort=(field): field to sort by
  • -S, --blocks: show number of file system blocks
  • -t, --time: which timestamp to show for a file
  • -T, --tree: recurse into subdirectories in a tree view
  • -x, --across: sort multi-column view entries across

You can sort by name, size, ext, inode, modified, created, accessed, or none.

Installation

exa is written in Rust. You'll have to use the nightly -- I try to keep it up to date with the latest version when possible. Once you have it set up, a simple cargo build --release will pull in all the dependencies and compile exa as target/release/exa.

exa depends on libgit2 for certain features. If you're unable to compile libgit2, you can opt out of Git support by passing --no-default-features to Cargo.