다음을 사용하여 모든 jpg 이미지를 가져올 수 있습니다.

find . -name "*.jpg" 

하지만 png 파일을 결과에 추가하려면 어떻게해야합니까?

댓글

답변

다른 매개 변수간에 -o 플래그를 사용하세요.

find ./ -type f \( -iname \*.jpg -o -iname \*.png \)는 참처럼 작동합니다.

참고 대괄호와 해당 내용 사이에 공백이 있어야합니다 . 작동하지 않습니다.

설명 :

  • -type f-파일 만 검색 (디렉토리 제외)
  • \( & \)-type f가 모든 인수에 적용되는 데 필요합니다.
  • -o-논리적 OR 연산자
  • -iname-name와 같지만 대소 문자를 구분하지 않습니다.

댓글

  • 괄호가 필요합니까? 명령은 그들 없이도 나를 위해 작동합니다. 일부 셸에 필요합니까?
  • @miked 명령은 " 작동 " 없이도 가능합니다. '는 .png로 끝나는 디렉토리와 .jpg로 끝나는 파일에 대한 히트를 받게됩니다. 이는 정확히 의도 한 바가 아닙니다.
  • 명확히 해주셔서 감사합니다! type -f는 확장되지 않으며 괄호없이 두 표현식 모두에 적용됩니다. 따라서 find ./ -type f -iname \*.jpg -o -type f -iname \*.png도 작동하지만 … ' 2 자 더 길어졌습니다. 🙂
  • ' 연산자 우선 순위의 문제입니다. a * b + ca * (b + c)
  • 와 다른 것처럼

  • @jdhao 좋은 캐치, 수정되었습니다.

답변

기준을 -o Shadur가 제안했습니다 . -o는 병치보다 우선 순위가 낮으므로 괄호가 필요할 수 있습니다.

find . -name "*.jpg" -o -name "*.png" find . -mtime -7 \( "*.jpg" -o -name "*.png" \) # all .jpg or .png images modified in the past week 

Linux에서는 다음을 수행 할 수 있습니다. 확장 프로그램을 더 간결하게 결합하려면 -regex를 사용하세요. 기본 정규식 구문은 Emacs ( 기본 정규식 및 대체 용 \|와 같은 몇 가지 확장)입니다. 확장 정규 표현식 으로 전환 할 수있는 옵션이 있습니다.

find -regex ".*\.\(jpg\|png\)" find -regextype posix-extended -regex ".*\.(jpg|png)" 

FreeBSD, NetBSD에서 및 OSX의 경우 확장 정규 표현식에 -regex-E를 결합하여 사용할 수 있습니다.

find -E . -regex ".*\.(jpg|png)" 

댓글

  • '는 항상 -iname 대신 -nameimage.JPGimage.PnG
  • 도 캡처합니다.

답변

더 정확합니다.

find . -iregex ".*\.\(jpg\|gif\|png\|jpeg\)$" 

댓글

  • 왜 " 더 " 정확하다고 말합니까?
  • @Kevin -iregexjpgJPG Jpg jpG 등입니다. $는 ' 필요하지 않은 것 같습니다. .
  • MinGW 에서 잘 작동합니다.
  • 먼저, 첫 번째 인수로 검색 폴더를 생략했습니다. 오류. 둘째, OSX에서 괄호를 이스케이프 처리하지 않고 대신 사용해야합니다 : @sorin '의 답변에 표시된대로 find -E . -iregex '.*\.(jpg|png|gif)'.

답변

분명히하기 위해 Linux, Unix 및 macOS 버전에서 작동하는 유일한 옵션은 다음과 같습니다.

find -E . -regex ".*\.(jpg|png)" 

OS X 버전이 약간 다르기 때문입니다.하지만 대부분의 플랫폼에서 잘 작동하는 것을 작성하는 것이 중요합니다.

주석

  • -E 플래그는 Ubuntu 14.04에서 찾기에 유효하지 않습니다.
  • -E 플래그는

    MinGW (적어도 내가 시도한 버전 / 구성 (특정 버전의 기본 구성))

  • -type f \( -iname \*.png -o -iname \*.jpg\)가 OSX에서 작동하지 않습니까?
  • -type f \( -iname \*.png -o -iname \*.jpg\)가 OSX에서 작동하는지 확인할 수 있습니다.

답변

/\.(jpe?g|png|gif|bmp)$/i; 

사용하세요.

댓글 s

  • 약간 설명이 필요할 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다