Date: Mon, 19 May 2008 21:46:03 +1200 From: Jonathan Chen <jonc@chen.org.nz> To: Garrett Cooper <yanefbsd@gmail.com> Cc: questions@freebsd.org Subject: Re: Now what would you expect this to print out? Message-ID: <20080519094603.GC12033@osiris.chen.org.nz> In-Reply-To: <7d6fde3d0805190149y7a3bfa75j2ca6a67cef66e8f6@mail.gmail.com> References: <7d6fde3d0805190149y7a3bfa75j2ca6a67cef66e8f6@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 19, 2008 at 01:49:35AM -0700, Garrett Cooper wrote:
> Riddle for the day for folks that have source trees... what would you expect
> this to print out (ask yourself the question and then execute the command)?
>
> find /usr/src -name Makefile -or -name '*.mk' -print
>
> The expected output and what actual output differed in my mind, but maybe
> somebody else can "shed some light" on the logic behind what happened
It's a problem that catches many young players with find(1). One has
to remember from reading the man-page that all directives have an
implicit AND operator on it; and that includes the "-print" directive.
So to get what you want, you have to introduce brackets:
find /usr/src \( -name Makefile -or -name '*.mk' \) -print
Cheers.
--
Jonathan Chen <jonc@chen.org.nz>
----------------------------------------------------------------------
If you're right 90% of the time, why quibble about the remaining 3%?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080519094603.GC12033>
