중첩된 tar.gz 파일에서 파일 복사

중첩된 tar.gz 파일에서 파일 복사

중첩된 tar.gz에서 파일을 추출하려는 상황이 있습니다. .tar.gz의 구조는 다음과 같습니다

  • test.tar.gz
    • 데이터 1
      • 데이터 2
        • 데이터 3
          • test2.tar.gz
            • 데이터 4
              • 데이터 5
                • 테스트 로그

그냥 추출하고 싶은데테스트 로그파일 출처:test.tar.gz문서. 나는 보았다이것게시 후 tar.gz 파일을 추출할 수 있지만 중첩 수준에서는 추출할 수 없습니다.

tar tfz data1.tar.gz를 추가하고 있습니다. 출력 폴더 구조는 위 구조를 수동으로 입력하는 것과 다를 수 있습니다.


data1/.
data1/META.json
data1/TEMP
data1/TEMP/temp-2
data1/TEMP/temp-2/1-chksum.txt
data1/TEMP/temp-2/1
data1/TEMP/temp-2/1/otherfiles
data1/TEMP/temp-2/1/otherfiles/2016_06_24.tar.gz

그래서테스트 로그파일이 내부의 중첩 폴더에 존재합니다.2016_06_24.tar.gz

답변1

data4 등이 압축된 test2.tar.gz 아카이브의 구성원이라고 가정하고 사용합니다.GNU 타르--strip 구성 요소 옵션:

tar xzOf ./test.tar.gz data1/data2/data3/test2.tar.gz | \
  tar xzf - --strip-components=2 data4/data5/test.log

...첫 번째 파일에 tar중첩된 압축 tar 파일을 표준 출력으로 추출하도록 지시한 다음 두 번째 파일에 tar입력 파일을 가져와 data4/data5/test.log 파일만 추출하여 처음 두 구성 요소를 제거하도록 지시합니다. . 그러면 test.log 파일이 현재 디렉터리에 배치됩니다. GNU tar가 없는 경우 --strip-comComponents 옵션을 제거하면 보관된 경로를 사용하여 파일이 추출됩니다.

관련 정보