.tar.gz 파일의 압축을 풀거나 추출하려면 어떤 명령이 필요합니까?


830

약 800MB의 이미지 파일이 포함 된 클라이언트에서 거대한 .tar.gz 파일을 받았습니다 (압축되지 않은 경우). 호스팅 회사의 ftp가 매우 느리므로 모든 파일을 로컬에서 추출하여 ftp를 통해 전송하는 것은 실용적이지 않습니다. .tar.gz 파일을 호스팅 사이트로 ftp로 보낼 수 있었지만 디렉토리로 ssh하고 unzip을 사용하려고하면 다음과 같은 오류가 발생합니다.

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

.tar.gz 파일의 모든 파일을 추출하려면 어떤 명령을 사용해야합니까?

답변:


1390

man tar자세한 내용을 입력 하지만이 명령을 사용하면됩니다.

tar -xvzf community_images.tar.gz

좀 더 설명하기 위해 tar는 모든 파일을 하나의 패키지로 수집했습니다 community_images.tar. gzip 프로그램은 압축을 적용하여 gz 확장자를 적용했습니다. 따라서 명령은 몇 가지 작업을 수행합니다.

  • f이 명령의 마지막 플래그해야하며, 타르 F ILE 직후해야합니다. tar에게 압축 파일의 이름과 경로를 알려줍니다.
  • z: tar에게 g z ip를 사용하여 아카이브를 압축 해제하도록 지시합니다.
  • x: 타르 파일 또는 전자 수집 할 수 x는 그들을 기관을. x후자를한다.
  • v: 타르 이야기를 많이합니다. V의 ERBOSE 출력은 모든 파일을 압축 해제되는 방법을 보여줍니다.

5
@Shiki 제안한 편집 내용을 보았습니다. 적절한 변경이라고 생각하지 않습니다.이 도구를 설명하는 방식을 선호합니다. 내가 않는 당신의 생각 tar -xf제안은 훌륭한 추가 답을 만들 것입니다.
— djeikyb

3
이것은 비슷한 문구로 표현 된 수백만 가지 질문 중 더 좋은 설명 중 하나입니다.
— JohnMerlino

1
@KasunSiyambalapitiya 기본적으로 현재 폴더에서 끝납니다. 또한보십시오 man tar; -C옵션을 찾으십시오 . 아니면 다른 답변을 확인하십시오 😉
— djeikyb

6
tar에 대한 xckd의 기사 를 상기 시킵니다. 나는 매번 돌아와야한다.
— mgarey

19
이 내 니모닉이다 : X 요로 의 Z 전자 V는 *** 보내고 F 세틸한다.
— Agargara

172

파일을 특정 대상으로 추출하려면 다음을 추가 할 수 있습니다 .이 경우 디렉토리를 먼저 만들어야합니다.이 경우 ~ / Pictures / Community-C /destination/path/

예:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

당신이 말하는 고려한다면 당신은 쉽게 기억할 수 타르 전자에 X의 요로를 F의 ILE

터미널에서 수행 된 프로세스의 gif

참고 : 당신이 맨 페이지 내에서 검색 할 수 있습니다 기억 ?을 찾기 위해 + 용어는 다음 n과 N당신이 찾고있는 용어의 다음 또는 이전 인스턴스로 이동합니다.


5
" c hange directory"에 대해 C 를 잊지 마십시오 ! 또한 하이픈과 하이픈이 아닌 옵션을 혼합하지 않는 것이 좋습니다 (특히 사용할 때 혼란 스럽습니다 ). ps
— djeikyb

2
왜 다른 모든 명령처럼 -o가 아닌가?
— Jan M.

6
나는 '전자 X의 기관에 F의 ILE 타르'힌트 사랑
— 남 G VU

2
애니메이션 GIF 1 개 이상
— Nick Steele

하나도 사용할 수 있습니다 --directory="/home/emmys/Pictures/Community/"( -C.
— Patrick Dark

107

어느 시점 tar에서 자동 압축 해제로 업그레이드되었습니다. 지금 필요한 것은 다음과 같습니다.

tar xf community_images.tar.gz

동일한 설명이 적용됩니다.

  • f이 명령의 마지막 플래그해야하며, 타르 F ILE 직후해야합니다. tar에게 압축 파일의 이름과 경로를 알려줍니다.
  • x: 전자 X는 파일을 기관.

명령 플래그에 하이픈이 부족합니다. 대부분의 tar 버전은 gnu 및 bsd 스타일 옵션을 모두 허용하기 때문입니다 (간단히 말하면, gnu에는 하이픈이 필요하고 bsd는 그렇지 않습니다).


1
이것에 대한 문서가 있습니까? 나는 이것에 대한 참조를 찾기 위해 온통 히 검색 해 왔으며, -z 플래그를 사용하지 않고 모든 것이 압축되어 있기 때문에 tarball을 전혀 압축하지 않았을 때 걱정했습니다. 감사.
— neurosnap


3
아마도 원래 답변을 편집하는 것이 좋을 것입니다.
— Seth

3
@Seth 그것은 특히 그것을 불러 일으킨 파괴적인 편집의 맥락에서 별도의 대답이 될만큼 충분히 느끼거나 느꼈습니다. 작업 후에 다시 생각할 것입니다. 원래 생각했던 것보다 병합하는 더 간단한 방법 일 수 있습니다.
— djeikyb 2016 년

2
2004 년 이후 @EnricoMariaDeAngelis bsd tar와 2010 년 이후 gnu tar는 압축 해제 기 자동 선택을 지원했습니다. tar의 "최근"(이 세기? 90 년대 이상?) 버전은 압축 해제기를 수동으로 선택할 필요가 없습니다.
— djeikyb 2016 년

11

에 대한 모든 플래그를 기억하는 tar것은 지루할 수 있습니다. 의무적 인 XKCD :

여기에 이미지 설명을 입력하십시오

따라서 파이썬에서 작은 스크립트를 만들어서 그렇게했습니다. 빠르고, 더러운, cp사용법 :

#!/usr/bin/env python3
import tarfile,sys,os
tf = tarfile.open(name=sys.argv[1],mode='r:gz')
where = '.'
if len(sys.argv) == 3:
    where = sys.argv[2]
tf.extractall(path=where)
tf.close()

다음과 같이 사용하십시오.

myuntar.py archive.tar

zip 아카이브 압축 해제에 대한 유사한 스크립트를 참조하십시오 .


2
:) -caf파일 이름을 기반으로 생성하고 -xf추출 하기 위해 기억 해야 할 두 개의 tar 플래그 만 있습니다 (AFAIK는 모든 유형의 tar에서 작동 함).
— Videonauth

@Videonauth 알고 있습니다. 그렇게 복잡하지는 않지만 어떤 이유로 든 이러한 옵션을 기억하지 못합니다. 아카이브를 자주 다루지 않기 때문에 어쩌면.
— Sergiy Kolodyazhnyy

이것은 gzip으로 압축 된 tar 파일 만 수행합니까? API 문서는 투명한 압축으로 읽는 모드를 언급합니다. 그게 더 행동 tar xf <file>?
— djeikyb

7

빠른 답변 :

tar -xvf  <.tar file> or <.tar.xz file>
tar -xzvf <.tar.gz file>
tar -xjvf <.tar.bz2 file>

[ 참고 ] :

  • -v 처리 된 파일을 자세하게 나열합니다.
  • -z gzip을 통해 아카이브를 필터링하십시오.
  • -f 아카이브 파일 또는 장치 ARCHIVE를 사용하십시오.
  • -x 아카이브에서 파일을 추출하십시오.
  • -j bzip2.
  • tar -xfarchive.tar #에서 모든 파일을 추출합니다 archive.tar.

4

를 .tar.gz사용하여 파일 을 추출 할 수없는 경우

tar -xvzf fileName.tar.gz

를 사용하여 추출해보십시오

tar xf fileName.tar.gz

4
gzip으로 압축 된 tar 파일 인 경우 첫 번째 명령이 항상 작동합니다. 작동하지 않으면 gzip으로 압축 된 tar 파일이없는 것입니다. 후자의 명령은 tar 파일에 사용 된 압축 알고리즘을 신경 쓰지 않는 사람들에게 큰 권장 사항입니다.
— djeikyb

0

첫 단계에서도이 작업을 수행 할 수 있습니다.

gunzip community_images.tar.gz

그런 다음 community_images.tar 파일이 있습니다.

두 번째 단계는 다음과 같습니다.

tar -xvf community_images.tar

* .tar 파일이 추출됩니다.


0

타르 xvf 파일 .tar.gz

  • 추출 용 x
  • v 자세한 정보 (목록 파일)
  • 파일 이름의 f는 다음입니다

원격으로 최신 버전의 tar는 아카이브가 압축되었음을 자동 감지하고 "z"를 추가해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.