Find all regular files under current directory tree excluding files from './dir1' (except './dir1/subdir1/) and './dir2' directories
find . \( -not -path './dir1/*' -and -not -path './dir2/*' -or -path './dir1/subdir1/*' \) -type f