FIND + TAR 명령을 사용하여 특정 파일을 추출하는 방법

FIND + TAR 명령을 사용하여 특정 파일을 추출하는 방법

tarfind 명령을 사용하여 파일 내의 특정 파일을 추출 할 수 있는지 알고 싶습니다 .

예:

  • 일반적인 상황: "file1"이라는 파일 이름을 찾아 추출합니다.

    tar xvf tarfilename file1 
    
  • 내 상황:

    find . -iname "*tar*" -exec tar -xvf *file1* {} \;
    

    그것이 가능할지 모르겠습니다.

이유:

tar내 내부 프로덕션 시스템에서는 명령 실행을 허용하지 않습니다 .

가장 좋은 방법은 tar를 직접 실행하는 것이라는 것을 알고 있지만 결국 희망은 무너졌습니다.

미리 감사드립니다.

답변1

셸에서 직접 실행할 수 없지만 tar다른 명령에서 실행할 수 있는 경우 다음을 수행할 수 있습니다.

env tar xvf file.tar file1
find . -prune -exec tar xvf file.tar file1 ';'
perl -e 'exec @ARGV' tar xvf file.tar file1

그러나 이는 여전히 유효하므로 tar적어도 귀하의 출마를 금지하는 법률의 정신을 여전히 위반하고 있을 가능성이 높습니다 tar.

이 외에도 (아카이브 처리에 사용되는 POSIX 명령)을 tar실행할 수도 있습니다 .pax

pax -r < file.tar file1

관련 정보