Unix "찾기"명령을 사용하여 모든 CPP 및 H 파일을 찾는 방법은 무엇입니까?
문제
사용해야 할 모든 H 파일을 찾기 위해서는 다음과 같습니다. -name "*.h"그러나 모든 H 및 CPP 파일을 찾는 방법은 무엇입니까?
해결책
find . -name \*.h -print -o -name \*.cpp -print
또는
find . \( -name \*.h -o -name \*.cpp \) -print
다른 팁
find -name "*.h" -or -name "*.cpp"
(서식으로 해석 된 별표를 보호하기 위해 편집)
폴 톰린 이미 훌륭한 대답을 제공했지만, 나는 당신이하고있는 일에서 패턴을 보았다고 생각했습니다.
언젠가 Grep으로 처리하기 위해 파일 목록을 생성하기 위해 Find를 사용할 가능성이 있으며, 그러한 작업에는 훨씬 더 사용자 친화적 인 도구가 있습니다. ACK
Perl을 지원하는 모든 시스템에서 작동하며 주어진 문자열에 대한 디렉토리의 모든 C ++ 관련 파일을 검색하는 것은 간단합니다.
ack "int\s+foo" --cpp
"--cpp"
기본적으로 일치합니다 .cpp .cc .cxx .m .hpp .hh .h .hxx
파일
(또한 기본적으로 리포지토리 디스크를 건너 뜁니다. 파일처럼 보이는 파일에서 일치하지 않습니다.)
그것을 할 수있는 짧고 명확한 방법 find
이다:
find . -regex '.*\.\(cpp\|h\)'
남자 페이지에서 -regex
: "이것은 검색이 아니라 전체 경로에서 일치합니다." 따라서 접두사가 필요합니다 .*
경로의 시작과 일치합니다 ./dir1/dir2/...
파일 이름 앞에.
find . -regex ".*\.[cChH]\(pp\)?" -print
이것은 Cygwin에서 나를 위해 잘 테스트되었습니다.
당신이 사용할 수있는 find
이 짧은 형태로 :
find \( -name '*.cpp' -o -name '*.h' \) -print
-print
생략 할 수 있습니다. 사용 -o
표현식간에 여러 유형의 파일을 찾고 동일한 작업을 수행하려는 경우 특히 유용합니다 (MD5SUM 계산이라고 가정 해 봅시다).
제휴하지 않습니다 StackOverflow