eza-community / eza-community/eza
bug: --binary and --bytes flags interaction changed with v0.23.5
- Dominant language
- Rust
- Stars
- 23.3k
- Forks
- 523
- PR merge metrics
- No merged PRs in 30d
Description
# Summary
Release v0.23.5 changed the interaction between `--binary` and `--bytes` flags. Previously, `--binary --bytes` output bytes, now it outputs the binary size.
# Environment
```
❯ cat /etc/os-release | head -n1
NAME="Arch Linux"
❯ uname -a
Linux hendrik-blue 7.1.5-arch1-2 #1 SMP PREEMPT_DYNAMIC Tue, 28 Jul 2026 13:49:51 +0000 x86_64 GNU/Linux
❯ eza --version
eza eza - A modern, maintained replacement for ls
v0.23.5 [+git]
https://github.com/eza-community/eza
❯ echo $SHELL
/usr/bin/zsh
❯ zsh --version
zsh 5.9.2 (x86_64-pc-linux-gnu)
❯ kitty --version
kitty 0.48.2 created by Kovid Goyal
```
# Expectation
The release notes mention nothing about about either flag, so I expect the same combination to continue working the same way. Specifically, **`--binary --bytes` should output bytes**.
My general expectation would be that in the case of conflicting options, the last one should take precendence, i.e.:
* `--bytes --binary` should output binary
* `--binary --bytes` should output bytes
I actually did not verify whether in v0.23.4, the order mattered or `--bytes` just always took precedence, but the actual behavior matched my expectations. In the case of `--binary --bytes`, bytes took precedence, which is not longer the case as of v0.23.5.
# Actual Behavior
The `--binary` flag now always takes precedence, no matter the ordering.
```
❯ eza --long --binary build/rel*
.rwxr----- 11Mi hendrik 6 Aug 15:51 build/release
.rwxr----- 11Mi hendrik 31 Jul 17:00 build/release-master
❯ eza --long --binary --bytes build/rel*
.rwxr----- 11Mi hendrik 6 Aug 15:51 build/release
.rwxr----- 11Mi hendrik 31 Jul 17:00 build/release-master
❯ eza --long --bytes --binary build/rel*
.rwxr----- 11Mi hendrik 6 Aug 15:51 build/release
.rwxr----- 11Mi hendrik 31 Jul 17:00 build/release-master
```
# Why does it even matter?
I have the following alias set up: `ll='exa --binary --all --git --group-directories-first --long'`. This allows me to just use `ll` in the general case, and then use `ll --binary` when I want the details. That worked perfectly up until v0.23.4, but stopped working in v0.23.5.
Contributor guide
Research direction
Start by reproducing the reported `eza --long --binary --bytes` and `--bytes --binary` commands, comparing their output with the expected flag precedence. Trace the `--binary` and `--bytes` option handling and add regression coverage showing that the intended ordering or precedence is restored.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100