Q: I want to run find across a directory tree, skipping standard
directories like /usr/spool and /usr/local/bin.
clause won't do it because
- name doesn't match the whole pathname - just each part of it, such as
spool or local.
How can I make find match the whole pathname,
like /usr/local/bin/, instead of all directories named bin?
A: It cannot be done directly. You can do this:
A: This will not perform
if you want them done, but not any files within them, try:
path\( -exec test
test-exprs\; ! -prune \) -o
A: The second version is worth close study, keeping the manual for find at hand for reference. It shows a great deal about how find works.
A: The -prune operator simply says "do not search the current path any deeper," and then succeeds a la -print.
Q: I only want a list of pathnames; the
pred I use in your answer
above will be just -print.
I think I could solve my particular problem by piping the find output
filter that deletes the pathnames I
don't want to see.