Subject: bug#40903: closed (Re: bug#40903: the "ls -R *.pdf" command does not search recursively only current dir)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 27 Apr 2020 15:01:03 +0000

Your bug report

#40903: the "ls -R *.pdf" command does not search recursively only current dir

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 [email-masked].

-- 
40903: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=40903
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#40903: the "ls -R *.pdf" command does not search recursively only current dir
From: Eric Blake <[email-masked]>
To: Jim Clark <[email-masked]>, [email-masked]
Date: Mon, 27 Apr 2020 10:00:52 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

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

Subject: the "ls -R *.pdf" command does not search recursively only current dir
From: Jim Clark <[email-masked]>
To: Jim Clark <[email-masked]>, [email-masked]
Date: Mon, 27 Apr 2020 07:25:25 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

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.

-- 
Thank you,

Jim Clark