![tar.gz 파일에서 디렉토리 경로를 생성하지 않고 파일만 추출하려면 어떻게 해야 합니까?](https://linux55.com/image/107525/tar.gz%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%8C%8C%EC%9D%BC%EB%A7%8C%20%EC%B6%94%EC%B6%9C%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
tar.gz
전체 구조를 생성하지 않고 현재 디렉터리에서 파일을 추출해야 하는 파일이 있습니다 .
예를 들어:
tar.gz
다음 파일이 포함되어 있습니다.
/u01/app/oracle/file1
..
..
/u01/app/oracle/file10
/u01/testdata/file1
..
..
/u01/testdata/file5
tar.gz
에 존재하므로 추출할 때 을 거치 /u02
려고 하면 아래에 전체 디렉토리 구조가 생성됩니다.file1
file10
/u02
/u02
답변1
고정된 수의 경로 구성 요소가 있는 것 같으므로 다음을 통과하십시오.--스트립 구성요소=3tar
압축해제 /u01/app/oracle
시 삭제/u02
구성 요소 수가 가변적인 경우 --transform
대신 이 플래그를 사용하십시오. 비슷한 것--transform='s,^\([^/][^/]*/\)\+,,'
답변2
표준 pax
명령을 사용하십시오.
gunzip < file.tar.gz | pax -r's|.*/||p'