I didn’t know I needed it, but what I know is that I will download it.
bat and rg I actually have already… but now you make me waste so much time fiddling with all these ;)
fd
saves me so much time. I actually understand find
better than I wish I did, and fd
is just so, so much easier.
The advantage of both rg and fd are that they use the Perl-compatible regex syntax that almost every contemporary programming language uses. There’s only one thing to learn.
I’ve had ls
aliased to exa
for a while. So it looks like eza is a fork of exa? The git feature looks interesting.
The owner of exa
hasn’t been active for close to 2 years and the project isn’t very actively maintained. eza
is a community maintained fork. Context: https://github.com/ogham/exa/issues/1139#issuecomment-1656702098
From eza
’s readme:
eza features not in exa (non-exhaustive):
- Fixes “The Grid Bug” introduced in exa 2021.
- Hyperlink support.
- Selinux context output.
- Git repo status output.
- Human readable relative dates.
- Several security fixes (see dependabot)
- Many smaller bug fixes/changes!
exa has a terrible bug: if you set TZ environment variable to ‘:/path/to’, you will get ‘Unable to determine time zone: No such file or directory (os error 2)’. Does eza fix it?
Don’t forget about lsd
me too, apparently they added some features and fixes. i wonder why they did it on a fork instead of pushing it upstream.
oh that’s why: https://feddit.de/comment/2583070
What’s wrong with ls
?
Absolutely nothing… but for some reason I find it interesting when people rewrite things that I didn’t know needed rewrites. Sometimes these projects are doing someting really interesting. Grep is one such example, noone was saying that grep needed a replacement. In fact, it was used as a benchmark for regex (which is how rg started, to compare rust regex against grep), then someone creates rg that outperforms grep and is much nicer to use. That is also why I keep an eye on GitOxide, since nobody ever accused git of being slow, yet there are someone rewriting git with amazing performance improvements.
From your experience have you felt these people had researched their reasonings for the rewrites extensively prior. Or did they discover these improvements along the way sort of, simply an off shoot of simply being a hobby when wanting to build their tooling to define existing flows/actions
That varies quite a lot… but in general, the small tools seems to start as someone adding color and bling, possibly some nice things like automatic pager (like in bat). Still often nice additions though. For larger stuff like rg and gitoxide the authors seems to have done quite a lot of research and are really experts in their field. You don’t improve grep and git by accident.
From eza’s readme, on why it’s better than ls:
It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git
GNU ls
has those features too (except knowing about Git). I’d be surprised if BSD ls
doesn’t at least have color support.
…not that I’m not going to check out eza
and probably switch to it! But it’s often worth knowing what features the GNU/BSD coreutils do or do not support…especially when comparing other tools against them.
Edit: I just checked, and this set of options works on both BSD and GNU ls
, in case anyone wants better ls
behavior on a system where you can’t install eza
for some reason:
ls -FH --color=auto
F
appends sigils indicating executables, symlinks, or directories, and H
follows any symlinks in the argument list.