I have a file with joker character patterns:

./include/*

./src/*

etc.

From the current directory I would like to recursively get the list of files that do not match these patterns.

link|improve this question

60% accept rate
feedback

2 Answers

up vote 2 down vote accepted
find . -type f \! \( -path '*/include/*' -o -path '*/src/*' \)

Breakdown:

  • \! is negating the group
  • \( ... \) is how to do groups of conditions for find
  • -o ORs conditions
  • Everything else should be self-explanatory.

If you have a new enough version of find, you could enhance it with:

find . -type f -regextype posix-egrep -regex \! -path '.*/(include|src)/.*'
link|improve this answer
Your reputation improves as well when you accept answers. ::prod:: – Brian Vandenberg May 5 '11 at 7:22
Chill out man, we are probably in different timezones... Thanks for the answer. :) – fish May 5 '11 at 8:52
np, was just giving a friendly reminder =) – Brian Vandenberg May 5 '11 at 8:53
feedback

First approach, but not using a list of files, others feel free to improve on that:

find . -type f -print | grep -v '.\/src\/*'
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.