
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"
의도된 동작은 디렉터리와 모든 하위 디렉터리에서 모든 C++ 파일을 찾는 것입니다. 내가 이해한 대로 -print 명령이 기본값이었습니다. 그러나 이 두 명령은 상당히 다른 결과를 제공합니다. 파일( 각각 printed
및 )로 리디렉션하는 경우:notprinted
$ wc -l printed notprinted
1813 printed
1979 notprinted
정렬된 각 파일을 비교하는 것은 나에게 별로 도움이 되지 않습니다. 에서 제외되는 항목에 대한 명확한 패턴이 없습니다 printed
.
여기서 무슨 일이 일어나고 있는 걸까요?
답변1
답은 우선순위입니다. 작업이 지정되지 않으면 인쇄되지만 작업을 지정하면 요청한 작업이 수행됩니다. 귀하의 예는 파일 -print
만 인쇄합니다 .cpp
. 당신은 아마도 다음을 원할 것입니다 :
find src/ \( -name "*.cc" -o -name "*.cpp" \) -print
다양한 작업을 포함하는 여러 조건을 가질 수 있습니다.