On Wed, 6 Jul 2005, C. Bensend wrote:
> Hey folks,
>
> OK, I think I've got the dunce hat on today, and I'm about to
> go crazy with this one.
>
> I have a script on an OpenBSD 3.7-STABLE machine that does
> a find in a directory, and uses rm to remove files older than
> two days (where RETAIN = "+2") :
>
> find /path/to/dir -type f -name \*.gz -mtime ${RETAIN} -exec rm {} \;
>
> This directory has a subdir (a .ssh), and no matter what I
> do, I cannot get find to NOT recurse into this subdirectory. I've
> tried using -path, ! -path, -maxdepth 0|1, and none of them seem
> to do what I want. I only want find to examine the /path/to/dir
> directory, and not any subdirs.
>
> I've been through the man page so many times, I can just about
> recite it. Am I just missing something, or is this not possible?
> I'm guessing it's the former and I've just stared at it too long to
> see the obvious.
Something like this should work (compare some of th examples of the man
page):
find /path/to/dir -name .ssh -type d -prune -or \
-type f -name \*.gz -mtime ${RETAIN} -exec rm {} \;
-Otto