GNU bug report logs -
#40903
the "ls -R *.pdf" command does not search recursively only current dir
Previous Next
Full log
Message #12 received at 40903-done <at> debbugs.gnu.org (full text, mbox):
tag 40903 notabug
thanks
On 4/27/20 9:25 AM, Jim Clark wrote:
> Greetings,
>
> I found the ls command when used with a pattern does not search recursively.
>
> ls -R *.pdf
> only searches the current directory and not recursively.
You are forgetting that globs expand prior to invoking ls. What you
have invoked is something like:
ls -R a.pdf b.pdf
which says to recursively list all files starting with a.pdf or b.pdf,
and descending if any of those files are a directory, but neither a.pdf
nor b.pdf is a directory, so there is nothing to descend into.
Instead of trying to mess with how globbing interacts with ls, you are
better off learning how to use 'find', which does recursion and
filtering as its primary goal. In this case, you would use:
find . -name '*.pdf'
which gives you a recursive listing of all directories under '.', then
filters it out to files ending in .pdf.
As the action of globbing is done by your shell and not by ls, there is
nothing to change in coreutils, so I'm closing this as not a bug. But
feel free to respond with further questions on the topic.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
This bug report was last modified 5 years and 23 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.