와일드카드를 사용하여 tar 아카이브의 특정 파일을 추출합니다.

와일드카드를 사용하여 tar 아카이브의 특정 파일을 추출합니다.

다양한 종류의 파일이 포함된 아카이브에서 JPEG 사진만 추출하는 스크립트를 만들려고 합니다.

이를 위해 다음을 사용하려고 했습니다.

   tar -xf MyTar.tar *.jpg

하지만 실패했고(*.jpg를 찾을 수 없음) "--wildcard"를 사용하도록 제안했습니다. 그래서 나는 노력했다

tar -xf MyTar.tar --wildcard *.jpg

그렇게 했지만 동일한 오류와 "--wildcard" 옵션이 모호하다는 다른 경고가 표시되었습니다.

tar에 대한 매뉴얼 페이지를 살펴봤지만 문제에 대한 단서를 찾지 못했습니다.

답변1

결국 나는 좋은 휴식 후에 답을 찾았습니다. 옵션은 와일드카드입니다.에스, 복수형...

그래서 명령은

tar -xf MyTar.tar --wildcards "*.jpg"

내가 필요한 것을 정확히 했어.

답변2

이와 같이 와일드카드 주위에 따옴표를 넣으면 "*.jpg"쉘이 확장을 시도하지 않고 대신 tar로 바로 전달됩니다. tar가 쉘이 아닌 와일드카드를 평가하기를 원하며 따옴표가 이를 수행합니다.

답변3

일부 이전 버전의 tar의 경우 다음이 추출됩니다."남자" 파일:

파일 이름 대체 와일드카드는 아카이브에서 파일을 추출하는 데 사용할 수 없습니다. 대신 다음 형식의 명령을 사용하십시오.

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `

관련 정보