[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Technical reason to use `-path "./foo" -prune` vs `-name "foo" -prun

From: Peggy Russell
Subject: Re: Technical reason to use `-path "./foo" -prune` vs `-name "foo" -prune`
Date: Tue, 5 Apr 2011 00:23:19 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

> > On a side note: I understand `-name` is the basename and `-path` is
> > the dirname. Everything is a file. A directory can be matched
> > with `-name` or `-path`, a file can only be matched with `-name` and
> > `-path` if no slashes used. I almost always see `-name foo -prune`
> > verses `-path ./foo -prune`. And was wondering if there was a
> > technical reason? Is one more efficient than the other?
> They have different meanings.    One will prune start/subdir/foo and
> the other will not.

In the examples below (one uses `-iname` (basename) and one uses
`-path` (dirname relative to starting point)) pruned the directory '/foo'.
I added `-D search` (that helps sometimes) and the output was the same for both.
 I know the man page mentions `-prune` under both `-name` and `-path`. `-path`
also has a reference to POSIX. I doubled checked the POSIX `find` and `-path`
was listed.


It seems `-path` and `-name` are interchangeable as far as `-prune` goes, as
long as the pattern is correct for each of them. 

find . -path "./foo" -prune -o -print

find . -name "foo" -prune -o -print

find . -name "*" -printf '[%y] %-20p +%d \n'
[d] .                    +0
[d] ./bar                +1
[f] ./cc                 +1
[f] ./abc3.txt           +1
[d] ./foo                +1
[f] ./foo/abc3.txt       +2
[d] ./foo/baz            +2
[f] ./foo/abc2.txt       +2
[f] ./foo/abc1.txt       +2
[f] ./abc2.txt           +1
[f] ./abc1.txt           +1

Thank you.
Peggy Russell

reply via email to

[Prev in Thread] Current Thread [Next in Thread]