와일드 카드를 사용하여 tar 아카이브에서 특정 파일 추출


19

많은 종류의 파일이 들어있는 아카이브에서 jpeg 그림 만 추출하는 스크립트를 만들려고합니다.

그렇게하기 위해 다음을 사용하려고했습니다.

   tar -xf MyTar.tar *.jpg

그러나 실패했습니다 (* .jpg 찾을 수 없음). 그리고 "--wildcard"를 사용하도록 제안하십시오. 그래서 나는 시도했다

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

나는 그렇게했지만 같은 오류와 다른 경고가 옵션 "-와일드 카드"가 모호하다는 것을 나에게 말했다.

나는 tar에 대한 맨 페이지를 넘었지만 문제에 대한 단서를 찾지 못했습니다.


어떤 타르와 어떤 버전? tar --version
smci

답변:


33

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

그래서 명령

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

내가 필요한 것을 정확하게했다.


3

이와 같이 와일드 카드 주위에 따옴표를 넣으면 "*.jpg"쉘이 확장을 시도하지 않고 대신 tar로 바로 전달합니다. tar가 쉘이 아닌 와일드 카드를 평가하기를 원한다면 인용 부호를 사용하십시오.


0

이전 버전의 tar의 경우 "man"파일 에서 다음이 추출 됩니다 .

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

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.