James Youngman wrote:
exclude=$(find . -name .find-ignore -printf '%h\n' | sort -u) find . \! \( -false $( for e in $exclude ; do printf ' -o -name "%s" ' $e; done) \)
It's about twice as slow as -contains -- as you might expect, since it traverses the directory structure twice. find . -type d , -true > /dev/null => 1.41s find . -contains .find-ignore , -true > /dev/null => 1.53s exclude=$(find . -name .find-ignore -printf '%h\n' | sort -u); find . \! \( -false $(for e in $exclude ; do printf ' -o -name "%s" ' $e; done) \) , -true > /dev/null => 3.06s 3.06s is much much much better than -execdir; but -contains is still easier to type :) E
