Subject: bug#46060: Offer ls --limit=...

From: Erik Auerswald <[email-masked]>
Date: Sun, 24 Jan 2021 12:14:44 +0100

Hi Dan,

On 23.01.21 22:13, 積丹尼 Dan Jacobson wrote:
> I hereby propose "ls --limit=..."
> 
> $ ls --limit=1 # Would only print one result item:
> A
> 
> You might say:
> "Jacobson, just use "ls|sed q". Closed: Worksforme."
> 
> Ah, but I am talking about items, not lines:

You can use the ls option '-1' to print one item per line:

     $ touch {a..z}
     $ ls -1 | head -n8
     a
     b
     c
     d
     e
     f
     g
     h

You can use 'column' (from package "bsdmainutils" in Debian etc.)
to columnate the result:

     $ ls -1 | head -n8 | column
     a       b       c       d       e       f       g       h

> Indeed, directories might be huge. And any database command already has
> a --limit option these days, and does not rely on a second program to
> trim its output because it can't control itself. Indeed, on some remote
> connections one would only want to launch one program, not two. Thanks.

It might be nice not to have to create all the output that is to be
discarded, especially on remote and/or slow file systems.

The one program requirement could be fulfilled by a script or shell
function.

I am sorry if my email hinders possible acceptation of an implementation
of your suggestion, but I did want to show that there is a workaround
(adding non-GNU software to the mix, though).

Thanks,
Erik