2017-11-16 4 views
0

나는 여러 가지 하위 디렉토리를 살펴보고 .JPG .jpg 및 .png로 끝나는 모든 파일을 찾고 별도의 디렉토리에 복사합니다. 단지 .JPG여러 개의 파일 확장명을 가진 명령 찾기

누군가 내가 뭘 잘못하고 있는지 설명 할 수 있을까요?

find /root/TEST/Images -name '*.png' -o -name '*.jpg' -o -name '*.JPG' -exec cp -t /root/TEST/CopiedImages {} + 

답변

2

당신은 그룹 -o 조건 때문에 -a을 가지고는 묵시적 AND higher precedence이 지난 -name '*.JPG' 사이 -exec :

find /root/TEST/Images \(-name '*.png' -o -name '*.jpg' -o -name '*.JPG' \) -exec cp -t /root/TEST/CopiedImages {} + 

그룹화 괄호로 이루어집니다,하지만 그들은 탈출해야 할 (또는 따옴표로 붙인) 그들의 특별한 의미 때문에 포탄이다. 이 관계가없는

, 당신은 함께 jpgJPG에 대한 필터를 결합하여 전체 표현을 단축 할 수있는 대소 문자를 구분하지 -iname (댓글에서 언급 한 바와 같이) :

find /root/TEST/Images \(-name '*.png' -o -iname '*.jpg' \) -exec cp -t /root/TEST/CopiedImages {} + 
+0

"행 2 : 예기치 않은 토큰 근처의 구문 오류' ('')이 코드 줄을 사용할 때 오류가 발생했습니다. –

+0

''(''''''')''대신 인용 된 괄호를 사용할 수 있습니까? – randomir

+0

여전히 오류가 발생합니다 : find : : 사용법 : [-H] [-L] [-P] [-Olevel] [-D help | tree | search | stat | rates | opt | exec] [path ...] [expression] –