.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

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


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.