find 명령에서 중복된 -exec 표현식을 제거하는 방법은 무엇입니까?

find 명령에서 중복된 -exec 표현식을 제거하는 방법은 무엇입니까?

find를 사용하여 여러 파일 형식을 검색하는 명령이 있습니다 grep. 예를 들어 디렉터리를 제외 하고 파일에서 .js문자열을 검색하려면 다음을 입력하면 됩니다..jsxfoodist

find . -path "./dist" -prune -or -iname "*.js" -exec grep "foo" {} + -or -iname "*.jsx" -exec grep "foo" {} +

-exec각 파일 유형에 대해 반복되지 않도록 이 명령을 다시 작성하는 방법이 있습니까 ? 나는 노력했다

find . -path "./dist" -prune -or -iname "*.js" -or -iname "*.jsx" -exec grep "foo" {} +

그러나 이들 모두는 .jsx파일만 .js검색 하며 .jsx.

답변1

-or우선순위는 (기본 커넥터)보다 낮 -and으므로 분리의 "우선순위"를 명시적으로 높여야 합니다.

find . -path "./dist" -prune -or \( -iname "*.js" -or -iname "*.jsx" \) -exec grep "foo" {} +

관련 정보