Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: lsd has a different pipe behavior from ls #1052

Closed
1 task done
cole-maxwell1 opened this issue May 23, 2024 · 5 comments
Closed
1 task done

[Bug]: lsd has a different pipe behavior from ls #1052

cole-maxwell1 opened this issue May 23, 2024 · 5 comments
Assignees
Labels
kind/bug Something isn't working

Comments

@cole-maxwell1
Copy link

cole-maxwell1 commented May 23, 2024

Version

  • latest

version

lsd 1.1.2

What OS are you seeing the problem on?

No response

installation

cargo

term

xterm-256color

ls-colors

rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36:

What happened?

lsd has a different pipe behavior from ls.

$ lsd ~/neovim
 BACKERS.md    cmake          cmake.packaging     contrib           MAINTAIN.md   runtime  󱧼 src
 BSDmakefile   cmake.config   CMakeLists.txt      CONTRIBUTING.md   Makefile      scripts   test
 build         cmake.deps     CMakePresets.json   LICENSE.txt       README.md     snap
$ ls ~/neovim | wc -l
20
$ lsd ~/neovim | wc -l
3

What's expected?

GNU ls can determine if it is outputting to a terminal or not and will behave like ls -1 when piped. When piped lsd should replicate GNU ls behavior by acting like lsd -1.

Expected output:

$ ls ~/neovim | wc -l
20
$ lsd ~/neovim | wc -l
20

What else?

I have found that this ls pipe behavior isn't well documented in the Linux man-pages (from what I have found online and a few personal machines). Check out the -1 docs from freeBSD.

I discovered this when I needed to count the number of files in a flat directory and noticed something was off when I did this with lsd. I guess this subtle behavior is something I have depended on for many years, but I never really knew this was happening in the background.

@cole-maxwell1 cole-maxwell1 changed the title [Bug]: [Bug]: lsd has a different pipe behavior from ls May 23, 2024
@hanjianwei
Copy link

This bug is particularly frustrating. Even the --classic option doesn't resolve it.

1716598857

@touero
Copy link

touero commented Jun 12, 2024

image
I don’t know why lsd -t combined with | can produce different results with ls, so can I simply think that alias ls='lsd' is not true?

WangMengabc added a commit to WangMengabc/lsd that referenced this issue Jun 13, 2024
jody-frankowski added a commit to jody-frankowski/dotfiles that referenced this issue Jun 21, 2024
It broke with `alias ls=lsd` because `lsd` doesn't detect that output is going to a pipe like `ls`.
`lsd`'s behavior is discussed in lsd-rs/lsd#1052.
This should let us avoid such further bugs.
@edemattos
Copy link

I have also just observed this after installing the latest version on a new server.

As a temporary solution, I have reverted to v1.0.0, which I had been using for a while on other machines.

@zwpaper zwpaper added the kind/bug Something isn't working label Jul 23, 2024
zwpaper pushed a commit that referenced this issue Aug 19, 2024
@zwpaper
Copy link
Member

zwpaper commented Sep 28, 2024

this should now be fixed in latest version

/close

@muniu-bot muniu-bot bot closed this as completed Sep 28, 2024
Copy link

muniu-bot bot commented Sep 28, 2024

@zwpaper: Closing this issue.

In response to this:

this should now be fixed in latest version

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants