Untar, ungz, gz, tar-모든 유용한 옵션을 어떻게 기억하십니까?


76

나는 다음과 같은 문제가있는 유일한 사람이 아니라고 확신합니다. * nix에서 파일을 압축 해제해야 할 때마다 모든 스위치를 기억할 수 없으며 인터넷 검색을 끝내야합니다. 이 작업을 수행.

압축 치트 시트가 좋습니까? 아니면 타르에있는 모든 불쾌한 스위치에 대한 니모닉은 어떻습니까?

이 기사를 위키로 만들어서 여기에 멋진 치트 시트를 만들 수 있습니다.

아, 그리고 매뉴얼 페이지 : 그들이 도움이되지 않는 한 가지가 있습니까? 파일을 압축 해제하는 방법을 알아내는 것입니다.


1
매뉴얼 페이지를 사용하면 위키를 만들 필요가없고 man 명령 만 기억하면됩니다. :-) man (1)
Florenz Kley

9
eXtract Zee 파일은 내가 기억하는 방법
Canadian Luke

Zee Vocking 파일 작성은 .tar.gz 작성에 적합 할 수 있습니다.
CousinCocaine

답변:


65

또는 포괄적 인 도움으로 옵션을 완성 할 고급 완성 기능 (zsh 또는 bash의 새로운 버전과 같은)을 갖춘 쉘을 사용하는 것은 어떻습니까? :))

tar에 관하여 : "qwerty"키보드를보십시오. 서로 옆에 문자 "zxcvf"가 있습니다. "tar czvf file.tar.gz 파일"또는 "tar xzvf file.tar.gz"가 필요합니다.


실제로 질문에 대답하기위한 소품 :)

자, 그것은 멋진 "qwerty"팁입니다! :)

굉장한!
deadprogrammer

2
또 다른 팁은 최신 버전의 tar로 추출 할 때 z옵션 (또는 파일 j옵션 .bz2)이 필요하지 않다는 것입니다. 파일을 자동으로 압축 해제합니다.
Nate

10
나는 타르를 약 100 억 번 사용했으며 가장 일반적으로 사용되는 모든 옵션이 키보드에서 서로 바로 옆에 있음을 알지 못했습니다. headsmack
Tyler McHenry

41

타르 옵션 요약

난해한 스위치를 추가하기 위해 이것을 편집하는 것을 환영하지만 기본 사항은 다음과 같습니다.

  • x- 파일 추출
  • c- 아카이브 생성
  • t- 파일 목록
  • v- 상세 (처리 할 때 파일 나열)
  • j -bz2 압축 사용
  • z -gz 압축 사용
  • f- 디스크에서 파일 읽기 또는 쓰기

tar.gz 파일을 압축 해제하십시오 : tar zxf tarball.tar.gz

tar.bz2 파일을 압축 해제하십시오. tar jxf tarball.tar.bz2

tar.gz 파일을 작성하십시오. tar zcvf tarvall.tar.gz mydir / *


23

"unp"라는 작은 Perl 스크립트가 있습니다.

unp filename.tar.gz

... 그리고 모든 것을 추출합니다. 올바른 바이너리가 있는 한 압축 파일 과 함께 작동 합니다. 그리고 당신은 구문이나 그 쓰레기를 잊어 버립니다. Linux 배포판의 저장소를 확인하십시오. 적어도 아치, 데비안 및 우분투에 있어야합니다.


tar를 오랫동안 사용한 후에도 여전히 바보 같은 플래그를 찾기 위해 Google이 필요합니다. unp는 갈 길입니다.
Yada

8

실제로 자주 사용하는 경우 (x) 데이터 추출과 압축 (c) 데이터의 차이를 만듭니다.

추출하려면 :

tar xzf data.tgz

압축하려면

tar czf data.tgz

또한 .bashrc 두 함수를 추가 할 수도 있습니다.

function extract () {     
        if ($# -ne 1); then
                echo "Usage: $0  `<compressed archive>"`
                exit 1
        fi
        tar xzf $1
}

function compress () {
        if ($# -ne 2); then
                echo "Usage: $0 `<compressed archive> <files|directories>"`
                exit 1
        fi
        tar czf $1 $2
}

또 다른 멋진 추출 기능이 있으며 압축 파일의 확장자를 감지하고 작업을 수행합니다.

extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xvjf $1    ;;
           *.tar.gz)    tar xvzf $1    ;;
           *.bz2)       bunzip2 $1     ;;
           *.rar)       unrar x $1       ;;
           *.gz)        gunzip $1      ;;
           *.tar)       tar xvf $1     ;;
           *.tbz2)      tar xvjf $1    ;;
           *.tgz)       tar xvzf $1    ;;
           *.zip)       unzip $1       ;;
           *.Z)         uncompress $1  ;;
           *.7z)        7z x $1        ;;
           *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }

5

입력 만하면 tar --help치트 시트가 있습니다.


12
진지하게, 그 매뉴얼 페이지를 읽은 적이 있습니까?
deadprogrammer

읽을 수없고 길 수 있지만 옵션 이름을 찾는 데 효과적이라고 생각합니다. 찾고있는 옵션, 즉 'tar --help | 그렙 추출물 '.
Jeremy Ruten

1
큰. 그런 다음 개발자가 필요로하지 않는 많은 스 트리머 명령 및 옵션을 알려주는 맨 페이지를 살펴보아야합니다.

2
정말 어려운 점이 보이지 않습니다. 아카이브를 추출하려면 extract 옵션을 찾아 명령에 -x를 추가하십시오. 자세한 정보를 원하면 해당 옵션을 찾고 av를 추가하여 -xv를 얻으십시오. 그런 다음 원하는 정확한 명령을 얻을 때까지 계속하십시오. 일반적인 작업을위한 예제 명령도 있습니다.
Jeremy Ruten

1
제레미, 진짜 문제는 항상 올바른 어휘를 알지 못할 수도 있다는 것입니다. 따라서 혼란스럽고 유사한 옵션을 찾고 작동하지 않는 것이 쉽습니다. 그런 다음 적절한 순서로 배치해야합니다. 이것은 Windows에서 마이그레이션하는 사람에게는 사소한 것이 아닙니다. Windows의 스크립팅을 모르는 경우 더욱 그렇습니다.
Nazadus

3

tar 옵션을 기억하기 어려운 경우 파이프를 사용해보십시오.

  • zcat file.tar.gz | tar xvf -
  • bzcat file.tar.bz2 | tar xvf -

교체 tar xvtar tv바로 타르의 내용을 볼 수 있습니다.

개인적으로 다음 니모닉을 사용합니다.

  • t, x 또는 c는 각각 "표 작성", "추출"또는 "만들기"입니다.
  • v 모든 파일을 나열합니다.
  • tar.gz, tar.bz2 또는 일반 .tar 각각에 대해 z, j 또는 아무것도 없습니다.
  • 파일 이름, stdin / stdout 또는 테이프 장치 사용의 기본값을 제공합니다.

"j"와 "bzip2"는 서로 관련이없는 것처럼 보이지만이 예외를 쉽게 기억할 수 있습니다.

또한, 인터넷 검색이 "man tar"를 대체 한 것이 재밌습니다.


항상 f옵션을 제공하는 습관을 가져야 합니다. 최근에 tar의 기본 분포가 기본으로 설정되어 f -있으며, 과거 기본 설정은 f /dev/rmt0비슷하거나 비슷합니다. 결국 tar는 테이프 ARchiver입니다.
ephemient

1
뭐죠?
Claudiu


2

가장 자주 사용되는 세 가지 작업 :

--create -c

새 tar 아카이브를 작성하십시오.

--list -t

아카이브 내용을 나열하십시오.

--extract -x

아카이브에서 하나 이상의 멤버를 추출하십시오.


5 가지 고급 타르 작업 :

--append -r

이미 존재하는 아카이브에 새 항목을 추가하십시오.

--update -u

아카이브 멤버의 최신 사본을 존재하는 경우 아카이브 끝에 추가하십시오.

--concatenate --catenate -A

하나 이상의 기존 아카이브를 다른 아카이브의 끝에 추가하십시오.

--delete

아카이브에서 항목을 삭제합니다 (테이프에서는 작동하지 않음).

--compare --diff -d

아카이브 멤버를 파일 시스템의 해당 멤버와 비교하십시오.



2

입력하는 동안 항상 마음 속에 명령을 읽습니다.

자세한 zip 파일 압축

tar cvzf FILE

자세한 zip 파일 추출 FILE

tar xvzf FILE

2

나는 다음을한다

타르를 만들려면

tar czvf foo.tar.gz <files to be included>

untar하려면 :

tar zxvf foo.tar.gz

이것들은 당신이 걱정해야 할 주요 스위치 여야합니다 :

c - create
z - compress/uncompress
x - extracte
v - verbose
f - file

다음과 같이 디렉토리에서 파일을 이동하려는 동안 tar 및 untar 인라인과 같은 멋진 작업을 수행 할 수 있습니다.

tar cf - <files to be copied> | (cd <target directory>; tar xvf - )

1

방금 사용한 시간의 90 %

tar -xvf file.*  

x : 추출
v : 자세한 정보 표시 (선택 사항)
f : 입력 파일 (tar, gz, bzip2 등)

쉬운가요? :)
Fileroller를 사용하거나 콘솔에 없으면 Ark를 사용하십시오.


지금까지 파일 롤러를 사용하고 있었지만 현재 1.1GB의 메모리를 사용하기 때문에 운이 좋지 않습니다.
Andrew Grimm

1

저는 몇 년 동안 atool 프로젝트의 aunpack일부인 이라는 Perl 스크립트를 사용해 왔습니다 . 그래서 당신은 실행합니다 : 파일 확장자에 따라 올바른 일을합니다.aunpack foo.{zip/tar.gz/tar.bz2}

다른 장점은 aunpack현재 디렉토리를 많은 파일로 오염시키지 않는다는 것입니다. foo.zip하위 디렉토리에없는 20 개의 파일이 있다고 가정하십시오 . 현재 디렉토리에 이러한 파일을 분산시키는 대신 하위 디렉토리 aunpack를 작성하고 foo모든 파일을 거기에 넣습니다.


1

당신이 필요로하는 모든이 tar x(표준 입력에서 추출), tar c(표준 출력으로 타르), gzip -c(, 표준 출력 표준 입력에서 GZIP -1-9압축 수준, 동일 간다 bzip2) 및 gunzip -c(표준 출력 표준 입력에서 풀어서) - 다른 모든 파이프입니다.

tar와 gzip으로 :

$ tar c * | gzip -c > out.tar.gz

압축을 풀고 untar하려면

$ gunzip -c < out.tar.gz | tar x

달콤한 진행률 표시 줄을 원하면 cat과 비슷하지만 진행률 표시 줄을 보여주는 pv 를 사용하십시오 .

$ tar c * | bzip2 -c | pv > out.tar.gz
 22.6MiB 0:00:03 [3.64MiB/s] [  <=>                           ]
$ pv in.tar.gz | bunzip2 -c | tar x
   80MiB 0:00:00 [  58MiB/s] [===============================>] 100%

0

나는 단지 당신이 원하는 것을 생각하는 것이 쉬울뿐 아니라 일부 글자 만 생각합니다.

설명하기 위해 file.tar.gz를 추출하는 방법의 예를 사용합니다.

tar 파일이므로 tar 프로그램을 사용해야합니다. 그런 다음 옵션입니다.

  1. 당신이 엑스 트랙 을 원하기 때문에 x .
  2. 파일이 .gz로 끝나는 경우 z. (gz는 파일 이름에서 tar 뒤에 있습니다)이 옵션은 아카이브를 압축합니다.
  3. 파일의 경우 f, 아카이브 이름.

아래 예에서 설명합니다.

tar xzf file.tar.gz

0

내가 기억하는 방법은 항상 "tar XXvf"이며 두 X가있는 곳입니다.

  • e X tract의 경우 x 또는 C reate의 경우 c
  • z = gzip, j = bzip2 (gzip이 더 일반적이므로 일반적으로 z입니다. 어떤 이유로 j = bzip2가 머릿속에 붙어 있습니다).

때로는 압축 유형이 무엇이든 un 에 추가하는 압축되었지만 tar 파일이 없는 경우가 있습니다. 예 : g un zip 또는 b un zip2.

어떤 것이라도, 나는 2를 잊고 때로는 "bzip"을 입력합니다.


0

별칭을 만들 수도 있습니다. 이 두 줄을 ~/.bash_aliases파일에 추가 하십시오.

alias untar="tar xvf"
alias dotar="tar cvf"

그런 다음 untar foo.tar.gz추출하고 dotar foo.bar압축 하는 데 사용할 수 있습니다 . 기억하기 쉬운 다른 별칭을 사용할 수 있습니다.


0

C reate Z의 에 IP F의 ilename을

tar -czf myfile.tar.gz myfile.sql

전자 X의 요로 Z의 와 IP F의 ilename

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