부울 연산자 AND를 사용하여 디렉터리에서 파일을 선택하는 방법

부울 연산자 AND를 사용하여 디렉터리에서 파일을 선택하는 방법

디렉토리에서 특정 단어로 시작하고 특정 확장자로 끝나는 특정 파일을 선택(/grep/ls 찾기)하고 싶습니다. 예:

  • bluebelt_hans_hoff.jpg
  • bluebelt_hans_hoff.JPEG
  • bluebelt_peter_gort.jpg
  • bluebelt_peter_gort.JPEG

나는 "bluebelt"로 시작하고 ".jpg" 확장자로만 끝나는 파일만 원합니다(JPEG 확장자는 아님). 명령줄에서 이 작업을 어떻게 수행합니까?

답변1

터미널에 파일을 나열하려면 다음을 사용하십시오.

ls -d bluebelt*.jpg

이러한 파일로 작업을 수행하려면 다음을 사용하세요.

for file in bluebelt*.jpg; do
    your_command "$file"
done

답변2

find /dir/with/yor/files -type f -iname 'bluebelt*.jpg'

드라이버와 비교하여 이 방법의 장점은 동작이 예상치 못한 경우 ls에만 파일을 찾는다는 것입니다 . lsbluebelt1.jpg라는 디렉토리가 있다고 가정하면 ls유틸리티는 해당 디렉토리에 포함된 모든 파일을 출력합니다.

내 생각에 이 변형은 두 가지 역할을 합니다. (1) 검색은 대소문자를 구분하지 않습니다. (2) 재귀 검색을 지정하지 않으려는 경우 -name. 원하지 않는 경우 지침을 -maxdepth참조하세요 man find.

관련 정보