On Wed, 09 Jun 2021 08:23:20 -0600
Ian Lepore <i...@freebsd.org> wrote:

> On Wed, 2021-06-09 at 18:54 +1000, Peter Jeremy via freebsd-current
> wrote:
> > On 2021-Jun-08 17:13:45 -0600, Ian Lepore <i...@freebsd.org> wrote:  
> > > On Tue, 2021-06-08 at 15:11 -0700, Rodney W. Grimes wrote:  
> > > > There is a command for that which does or use to do a pretty
> > > > decent job of it called whereis(1).  
> > 
> > Thanks.  That looks useful.
> >   
> > > revolution > whereis ntp.conf
> > > ntp.conf:
> > > revolution > whereis netif
> > > netif:
> > > revolution > whereis services
> > > services:
> > > 
> > > So how does that help me locate the origin of these files in the
> > > source
> > > tree?  
> > 
> > It works for me™:
> > server% whereis ntp.conf
> > ntp.conf: /usr/src/usr.sbin/ntp/ntpd/ntp.conf
> > server% whereis netif   
> > netif: /usr/src/libexec/rc/rc.d/netif
> > server% whereis services
> > services: /usr/src/contrib/unbound/services
> > 
> > Is your source tree somewhere other than /usr/src?
> >   
> 
> My /usr/src is a symlink to the actual source tree on a different
> filesystem (but it is the source tree the running system was built
> from).  It seems odd that that would make whereis(1) not work.
> 

whereis(1) falls back to using "locate" if it can't find the sources
directly, so e.g., in case of `whereis -s ls', it will get through the
results of `locate '*'/ls` and see if they match "^/usr/src" (or
whatever you gave as source dir using -S).

Therefore if

  locate '*'/ntp.conf | grep "^/usr/src"

gives you a result, then `whereis -s ntp.conf' will too.

See also
https://cgit.freebsd.org/src/tree/usr.bin/whereis/whereis.c#n607

Michael

(re-sent, as the previous mail bounced from the list)

-- 
Michael Gmelin

Reply via email to