gunzip -dc /path_to_tar.gz_file/zip1.tar.gz | tar xf -
파일이 있는 디렉토리에서 실행하면 tar.gz
잘 추출됩니다.
tar.gz
파일 내용을 특정 디렉터리 에 넣으려면 어떻게 해야 합니까 ?
이것을 시도했지만 오류가 gunzip -dc /path_to_tar.gz_file/zip1.tar.gz | tar xf /target_directory
발생했습니다 .tar
또한 여기서는 bash 스크립트에서 이 작업을 수행하려고 하며 Solaris 10을 실행하고 있다는 점을 지적해야 합니다.
답변1
tar
다음 명령을 실행하여 원하는 위치에 콘텐츠를 추출 할 수 있습니다.
tar -zxvf path_to_file -C output_directory
설명된 대로tar
맨페이지:
-C 디렉토리, --cd 디렉토리, --directory 디렉토리
c 및 r 모드에서는 다음 파일을 추가하기 전에 디렉터리가 변경됩니다. x 모드에서는 아카이브를 연 후 아카이브에서 항목을 추출하기 전에 디렉토리를 변경합니다.
추가하신대로 사용 중입니다.솔라리스, 다음을 시도해 볼 수 있을 것 같습니다.
gunzip -dc path_to_file | tar xf - -C path_to_extract
답변2
이것이 당신이 원하는 것입니까?
tar xzvf file.tar.gz -C /target/directory
답변3
최신 Linux에서는 다음을 사용할 수 있습니다.
tar xzf /path/to/file.tar.gz -C /target/directory/
이는 다음과 거의 동일합니다.
(cd /target/directory/; gzip -cd /path/to/file.tar.gz|tar xf - )
Linux를 사용하지 않는 경우 매뉴얼 페이지를 확인하여 도구가 지원하는 옵션을 확인하세요.
답변4
여기에 있는 다른 답변 중 어느 것도 tar
Solaris의 기본 구현에 대한 모든 경고를 언급하지 않습니다. 한 가지 주의할 점은 기본적으로 압축을 지원하지 않는다는 것입니다. 간단한 추출은 다음을 통해 달성할 수 있습니다.
gzip -dc < /path/to/the.tar.gz | tar xvf -
또한 다음과 같은 방법으로 아카이브를 생성한 경우
tar cvf - /path/to/directory | gzip -c > the.tar.gz
이 아카이브를 추출하면 항상 원본 파일을 덮어쓰게 됩니다. 이는 Solaris가 를 추출할 때 아카이브 항목에서 선행 부분을 제거 tar
하지 않거나 경로 구성 요소를 제거할 수 없기 때문입니다. /
따라서두번째내용의 복사본을 만들려면 약간 다른 명령을 사용하여 아카이브를 만들어야 합니다.
tar cvf - -C /path/to/directory . | gzip -c > the.tar.gz
또는
(cd /path/to/directory && tar cvf - .) | gzip -c > the.tar.gz
Solaris 구현에서는 이 -C
스위치가 추출에 적용되지 않습니다. 아카이브가 다음 두 가지 방법 중 하나 또는 이와 유사한 방법을 사용하여 생성되었다고 가정하면 두 번째 형식 변형을 사용하면 임의의 위치로 추출할 수 있습니다.
gzip -dc < the.tar.gz | (cd /path/to/extraction/point && tar xvf -)
tar
GNU( )를 설치 한 경우 /usr/sfw/bin/gtar
직접 압축은 물론 경로 제거도 지원합니다. 이 경우 일반적인 옵션은 다음과 같습니다.
/usr/sfw/bin/gtar xvzf the.tar.gz
충분할 것입니다.