GNU bug report logs -
#21218
ls -d
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#21218: ls -d
which was filed against the coreutils package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 21218 <at> debbugs.gnu.org.
--
21218: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21218
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
tag 21218 notabug
thanks
On 08/07/2015 06:01 PM, Sneeh, Eddie wrote:
> Hi,
> I believe there is a problem with ls -d (unless the intent is to just list
> 1 directory).
Thanks for the report. However, I think you have misunderstood the
purpose of -d. Try this for comparison:
touch file
ls . file
ls -d . file
All -d does is to list command line arguments that are directories as
the name of the directory itself, rather than descending and showing the
directory's contents.
> Say I have a dir mydir, it has directories d1 and d2, and files f1 and f2.
> I want to list only d1 and d2. How do I do that? I tried ls -d but that
> doesn't seem to work:
> \ls -d mydir
> returns: mydir
> \ls -d mydir/*
> returns: mydir/d1 mydir/d2 mydir/f1 mydir/f2
> but f1 and f2 are files.
If you want to list ONLY directories, use a glob that guarantees only
directories can be matched:
ls -d mydir/*/
The trailing slash can only match directories, and will therefore skip
ordinary files. Or, you can use find:
find mydir -mindepth 1 -maxdepth 2 -type d
I'm closing this as not a bug as ls is working as designed, but feel
free to ask further questions.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
[Message part 5 (message/rfc822, inline)]
[Message part 6 (text/plain, inline)]
Hi,
I believe there is a problem with ls -d (unless the intent is to just list
1 directory).
Say I have a dir mydir, it has directories d1 and d2, and files f1 and f2.
I want to list only d1 and d2. How do I do that? I tried ls -d but that
doesn't seem to work:
\ls -d mydir
returns: mydir
\ls -d mydir/*
returns: mydir/d1 mydir/d2 mydir/f1 mydir/f2
but f1 and f2 are files.
How can I achieve the following:
\ls ?????? mydir
to return: mydir/d1 mydir/d2
--
Best Regards,
*Eddie Sneeh*
[Message part 7 (text/html, inline)]
This bug report was last modified 9 years and 289 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.