⇒ as field separator for symlinks breaks ls compatibility
Author: polijanCreated Apr 18, 2026Updated Jun 20, 2026
- os: Linux
lsd --version: lsd 1.1.5echo $TERM:echo $LS_COLORS:
Expected behavior
As is implemented by ls and mandated by POSIX, when using the -l option, symbolic links are shown like:
<pathname_of_link> -> <contents_of_link>
Actual behavior
With lsd, symbolic links are always shown like:
<pathname_of_link> ⇒ <contents_of_link>
Suggestions
Although it is admittedly a bad idea to rely on ls output, some portable scripts (prior to POSIX 2024 which standardized realpath/readlink) do to determine symlinks.
Suggestion: Replace ⇒ with -> as the separator for symlinks, either always (much simpler that way), or at least when standard output isn't a terminal, and in any case always when invoked with --classic.
Source: lsd-rs/lsd