2011-08-05 2 views
0

는 좀 더 디렉토리/사용자의 Y의 픽셀 X에 비해 모든 이미지 파일에 대한 검색을 할 노력하고있어/(이 맥 OS이며, 예, '위험'검색, 나도 알아.)./을 어떻게 제외 할 수 있습니까? 쉘 스크립트 검색에서 디렉토리?

int main(){ 
    FILE *pf; 
    pf = popen("cd ~/ ; find . -type f '!' '(' -path ".*" ')' -print0 | xargs -0 file | grep 'image data'","r"); 
} 

그러면 오류가 find: ./.fseventsd: Permission denied이됩니다. .으로 시작하는 디렉토리는 건너 뛸 필요가 있지만 위의 ! (-path ".*") 명령을 사용하면 작동하지 않는 것처럼 보일 수 있습니다.

건너 뛰는 방법에 대한 정보가 많습니다. 파일; 어떤 약 디렉토리를 찾을 수 없습니다.

답변

0

-path '와 일치합니다.' 그래서 시도해 봐.

find . -type f '!' '(' -path "./.[a-z]*" ')' 
0

(-type d -name '.*' -prune) -or ($EXP -print)과 같이하고 싶습니까? $EXP은 나머지 표현식입니다. 그러면 이름이 ". *"와 일치하는 디렉토리가 제거되고 다른 모든 것에 표현식이 적용됩니다. 마지막에 print이 있는지 여부는 표현식의 나머지 부분과 AND 연산을 수행하기위한 것이며, 여기에서 정리 된 디렉토리가 인쇄되지 않도록하기 위해 사용됩니다.

+0

그것은 유망 해 보인다. 그리고 나는 오류를 얻지 않는다. 그러나'(-t -d -name '. *'-prune) - 또는'출력이 없습니다. – buildsucceeded

+0

물론 출력을 얻지 못했습니다. 당신은 후반을 생략했습니다. 위의 내용을 바탕으로 원하는 전체 표현식은'\ (-type d -name '. *'prune \) 또는 \ (-type f -print0 \)'처럼 보일 것입니다. ('-path 왜냐하면 나는 그것이 점 - 폴더를 제거하려고 시도했기 때문이다.). –

+0

하하, 아니, 나는'-print' ...를 찾았다.'find. - 타입 f '!' '('-path "./.[a-z]*" ')'-print | xargs -0 파일 | grep '이미지 데이터'| tr '\ 012' '\ 000''은 여전히 ​​결과를 출력하지 않고 간단히'find. - 타입 f '!' '('-path "./-[[z]*" ')'-print'가 사용합니다. 내가 뭘 잘못하고 있을지 모르겠다. – buildsucceeded

관련 문제