this post was submitted on 28 Aug 2023
86 points (94.8% liked)

Rust

5999 readers
5 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
 

I didn't know I needed it, but what I know is that I will download it.

all 31 comments
sorted by: hot top controversial new old
[–] Selardor@sh.itjust.works 24 points 1 year ago (1 children)

This was posted a few days ago. It's a great collection.

[–] snaggen@programming.dev 12 points 1 year ago (1 children)

bat and rg I actually have already.... but now you make me waste so much time fiddling with all these ;)

[–] BatmanAoD@programming.dev 5 points 1 year ago* (last edited 1 year ago) (1 children)

fd saves me so much time. I actually understand find better than I wish I did, and fd is just so, so much easier.

[–] intrepid@lemmy.ca 1 points 1 year ago (1 children)

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.

[–] BatmanAoD@programming.dev 1 points 1 year ago

That, and the use of gitignore and other heuristics to ignore many files by default.

Plus, unlike grep, find is just...awkward. The directories to search must be prior to any search arguments (and . is not the default, it must be specified explicitly), and using a search pattern is treated as one of many special cases requiring one of a variety of flags rather than the obvious default operation.

It's a powerful DSL, but...not a convenient one by any stretch of the imagination.

[–] hallettj@beehaw.org 11 points 1 year ago (1 children)

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.

[–] d_k_bo@feddit.de 21 points 1 year ago (1 children)

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!
[–] Coelacanthus@lemmy.kde.social 1 points 1 year ago

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?

https://github.com/ogham/exa/issues/856

[–] tatterdemalion@programming.dev 10 points 1 year ago

Don't forget about lsd

[–] fzz@programming.dev 10 points 1 year ago (1 children)

Hmm 🤔 something new for me. I’m in love with exa. What’s wrong with that?

[–] Rescuer6394@feddit.nl 5 points 1 year ago (2 children)

me too, apparently they added some features and fixes. i wonder why they did it on a fork instead of pushing it upstream.

[–] fzz@programming.dev 3 points 1 year ago

I see. I suppose that exa is abandoned for two years or more and perhaps there’s no connection with maintainer. So then fork.

[–] Quill7513@slrpnk.net 8 points 1 year ago

I've been using exa for a while and am a big fan. I'll have to give eza a go

[–] planetaryprotection@midwest.social 8 points 1 year ago (3 children)
[–] snaggen@programming.dev 19 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] pexavc@lemmy.world 1 points 1 year ago (1 children)

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

[–] snaggen@programming.dev 2 points 1 year ago

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.

[–] guy@lemmy.world 9 points 1 year ago* (last edited 1 year ago) (1 children)

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

[–] BatmanAoD@programming.dev 5 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] RunAwayFrog@sh.itjust.works 3 points 1 year ago

exa (which OP's readme says eza is built on) supports creation times. Actual creation time (the "Birth" line in stat output), not ctime.

[–] 1984@lemmy.today 0 points 1 year ago

It's not cool. :)

[–] jibz@burggit.moe 6 points 1 year ago

I've aliased ls as exa --icons

I like to see icons

[–] combat_brandonism@hexbear.net 5 points 1 year ago

I use exa but I don't remember why

[–] 1984@lemmy.today 2 points 1 year ago

Kind of nice actually. I have been using exa as a replacement for ls (also in Rust) but I like the tree like view here of files.

[–] yoshi@programming.dev 1 points 1 year ago (2 children)

Anyone tried it and has an argument as to why people should use it over ls?

[–] autokludge@programming.dev 4 points 1 year ago

'Should' is a pretty strong word, try it out if you want.

I mainly use it because it colorizes the output nicer than ls, but it also has git awareness if you need it.

[–] TehPers@beehaw.org 4 points 1 year ago

I haven't looked into eza at all, but ls alternatives always have a place on Windows. dir has to be one of the worst flavors of ls still used in the modern era.

[–] CyberDragonCore@programming.dev 1 points 1 year ago* (last edited 1 year ago) (1 children)

I've used exa before and it's great software.What is the difference between exa and exz?