I'm running MacOSX 10.5.8
I run the following:
~/Sites/jjprof/trunk/content > find . -type d -name '*svn' -prune
./.svn
./resources/.svn
./resources/sitewide/.svn
./temporary/.svn
./users/.svn
./users/avatars/.svn
I would expect this command to ignore all the .svn subdirectories; instead it displays them.
find . -name '*svn' -prune
does the same thing.
Answer
Try this:
find -type d -path '.svn' -prune -o -print
From man find under the section on -name:
To ignore a directory and the files under it, use
-prune; see an example in the description of-path.
Under the section on -path:
To ignore a whole directory tree, use
-prunerather than checking every file in the tree. For example, to skip the directorysrc/emacsand all files and directories under it, and print the names of the other files found, do something like this:find . -path ./src/emacs -prune -o -print
From the "Examples" section:
However, the
-pruneaction itself returns true, so the following-oensures that the right hand side is evaluated only for those directories which didn't get pruned (the contents of the pruned directories are not even visited, so their contents are irrelevant).
No comments:
Post a Comment