A modern replacement for ‘ls’.
Go to file
Ben S 42ae7b3d33 Refactor the code after tree view changes
- Turn the views and main program loop into structs, rather than just as one gigantic function
- Separate views into their own files

The addition of the git column and the tree view meant that a lot of functions now just took extra arguments that didn't seem to fit. For example, it didn't really work to have only one 'view' method that printed out everything, as the different view options now all take different parameters.
2015-02-05 14:39:56 +00:00
src Refactor the code after tree view changes 2015-02-05 14:39:56 +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 Start using the new getopts interface 2015-02-04 14:51:55 +00:00
Cargo.toml Use latest, working version of ansi_term crate 2015-02-04 14:51:25 +00:00
LICENCE Update LICENCE 2014-07-02 22:07:09 +01:00
README.md Code changes in preparation for recursion 2015-01-31 16:10:40 +00: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
  • -x, --across: sort multi-column view entries across

You can sort by name, size, ext, inode, 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 will pull in all the dependencies and compile 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.