bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [patch] add option to ls to display only directories


From: Bob Proulx
Subject: Re: [patch] add option to ls to display only directories
Date: Mon, 8 Aug 2005 10:34:42 -0600
User-agent: Mutt/1.5.9i

address@hidden wrote:
> I use the following (which I don't use that often to be honest):
> 
> alias lld='find -maxdepth 1 -type d ! -name ".*" -printf "%P\n" | xargs ls 
> -lUd --color'

Thanks for sharing that alias with the group.  But I noticed some
optimizations that could be made to it.

* For an lld alias it would seem simpler to grep ^d from ll output.

    alias lld='ls -l | grep ^d'

  I did not add --color or -U here because it will pick up whatever
  alias for ls that you already have and any options associated with
  it.

* Instead of --color I think it is better to use --color=auto.  This
  way it works into pipes similarly to the -1 being implied when
  writing to a pipe.  Here is the info doc snippet:

     Specifying `--color' and no WHEN is equivalent to `--color=always'.
     Piping a colorized listing through a pager like `more' or `less'
     usually produces unreadable results.  However, using `more -f'
     does seem to work.

* But your example really shines with a simple columnar ls listing
  trying to get just the directories.  Paraphrasing your example into
  an lsd example, and ignoring ARG_MAX for the moment:

  alias lsd='ls -d $(find -maxdepth 1 -type d ! -name ".*" -printf "%P\n")'

I would probably make these either functions or shell scripts.  I
personally prefer shell scripts because then they work with other
things that want external commands.  In either case they could then be
modified to take arguments.

  #!/bin/sh
  ls -d "$@" $(find -maxdepth 1 -type d ! -name ".*" -printf "%P\n")

Bob




reply via email to

[Prev in Thread] Current Thread [Next in Thread]