본문 바로가기
카테고리 없음

[Linux] 압축과 아카이브 (tar, gzip, bzip2, xz)

by 떵해이 2020. 12. 3.
300x250

압축과 관련하여 더 있는 것으로 알고 있습니다.

리눅스에서 자주 사용하는 압축도구와 tar명령 사용법에 대해서만 알아보도록 하겠습니다.

(파일 묶는것과 압축은 다릅니다.)

 

보통 패키지로 설치하여 관리를 편하게 사용합니다.

하지만 환경설정을 변경해야 하거나 부득이하게 소스 파일로 설치해야 하는 경우도 있습니다.

 

그러한 경우에 이 압축을 사용할 수 있어야 합니다.

보통 수동으로 소스 파일을 설치할 때 처음에 할 일이 압축된 프로그램을 푸는 것입니다.

리눅스에서 사용되는 프로그램은 C언어로 된 소스파일이 tar형식으로 압축해서 베포됩니다.

(소스 프로그램은 GNU 웹사이트나 관련 프로그램 사이트에서 무료로 베포됩니다.)

 

프로그램은 압축 도구에 따라 각각 다른 확장자가 붙습니다.

 

그 확장자에 따라 다른 사용법을 알아보도록 하겠습니다.

가장 자세히 봐야하는 것은 tar입니다.

 

○ gzip

    ▷ 확장자 .gz

    ▷ GNU zip 약자 (GNU에서 만든 압축 프로그램)

    ▷ 파일의 크기에 따라 압축률의 차이가 있음

 

● 사용법

# gzip [옵션] [파일명] 파일 압축하기

-d : 압축 풀기

-l : 압축 파일에 대한 정보 출력

-r : 디렉토리 압축이면 하위 디렉토리까지 모두 압축

-v : 진행과정 % 출력

 

# gunzip [옵션] [파일명] 파일 압축풀기

 

○ bzip2

    ▷ 확장자 .bz2

    ▷ 사용법은 gzip가 동일

    ▷ gzip보다 압축률 좋지만 시간이 더 걸린다.

 

● 사용법

# bzip2 [옵션] [파일명] 파일 압축하기

-d : 압축 풀기

 

# bunzip2 [옵션] [파일명] 파일 압축풀기

 

○ xz

    ▷ 확장자 .xz

    ▷ 데이터 무손실 압축 프로그램

    ▷ 다른 압축도구에 비해 매우 높은 압축률이 장점

    ▷ 대신 시간이 좀 더 걸림

 

● 사용법

# xz [옵션] [파일명] 파일 압축하기

-d : 압축 풀기

 

# unxz [옵션] [파일명] 파일 압축풀기

 

○ tar

tar는 tape archive(아카이브) 약자이다.

       파일을 묶어주고 풀어주는 기능있다.

       압축 관련 작업도 가능하다.

 

아카이브는 원래 보관소, 저장소 뜻입니다.

리눅스에서의 '아카이브'는 여러가지 파일들을 한 곳으로 모아주는 역할을 뜻합니다.

 

    ▷ 리눅스에서 디렉토리나 파일을 하나로 묶는데 사용

    ▷ tar 명령으로 위의 압축 도구를 함께 사용

     옵션을 사용할 때 '-' 사용해도 사용하지 않아도 상관없습니다.

 

 

● 사용법

# tar [옵션] [파일명] 자주 사용하는 옵션은 굵은 색으로 표기 해놓았습니다.

-x : tar 압축 풀기

-v(거의 필수) : 작업 대상 파일 출력

-f(필수) : 작업 대상의 tar 파일에 대한 이름 지정

-c : 지정된 파일을 묶어 하나의 tar 파일 생성

-r : 기존 tar파일 안에 다른 파일 추가

-t : tar파일에 묶인 파일 목록 출력

-z : gzip 관련 옵션으로 tar.gz파일에 사용

-j : bzip2 관련 옵션으로 tar.bz2파일에 사용

-J : xz관련 옵션으로 tar.xz파일에 사용

 

○ tar 관련 실험

● 여러개의 파일 묶기

먼저 test용 디렉토리를 만들어서 그 안에 여러 파일을 생성해서 한번 실험해보도록 하겠습니다.

 

# cd ~ 명령어로 홈 디렉토리 이동

# mkdir test 명령어로 test디렉토리 생성

# cd test 명령어로 test디렉토리 안으로 이동

# touch test1 파일 만들기

# touch test2

# touch test3

 

 

# ls 명령어로 파일 리스트 확인

# tar cvf [tar로 묶을 파일명] [묶을 파일들]

옵션 cvf을 같이 사용해야 합니다.

 

-c 파일 묶기 (묶어서 .tar파일 생성)

-v 파일 출력

-f 파일 이름 지정 (파일 이름 안정하면 생성 안됨)

 

묶을 파일들 test1 test2 test3 이렇게 일일이 나열해도 상관없습니다. 한칸씩만 띄어쓰기 하면 됨

 

# tar cvf test.tar test*

 

∴ 기존 파일들은 그대로 존재하고, 새로운 파일에 묶임

 

 

● tar 묶은 파일 확인하는 법

# tar tvf [파일명]

 

-t tar묶은 파일 목록 출력

 

# tar tvf test.tar

 

 

● tar로 묶은 파일 풀기

실험을 위해 기존에 있던 test1~3 파일 삭제 후 tar묶인 파일 풀기

 

# ls 명령어로 파일 리스트 확인

# rm -rf test1 명령어로 파일 삭제

# rm -rf test2

# rm -rf test3

# ls 명령어로 test.tar만 남아있는 것 확인

# tar xvf test.tar 명령어로 test.tar 묶은 파일 풀기

-x tar파일 풀기 

 

∴ tar묶은 파일 그대로 있고, 묶인 파일들이 새로 나와서 생김

 

 

● tar와 압축 프로그램 사용법 (가장 많이 사용합니다.)

예시로 가장 많이 사용 gz으로 한번 해보겠습니다.

(tar는 압축 프로그램에 관련된 옵션을 이용해 묶음+압축도 가능 / 풀때도 가능)

 

먼저 gz으로 압축해보겠습니다.

# ls 명령어로 파일 리스트 확인

# tar zcvf [압축할 파일명] [압축할 파일들] 

# tar zcvf test.tar.gz test1 test2 test3 파일들을 tar로 묶고 gzip으로 압축

-z gzip 관련 옵션 (gzip 압축할 때도 풀때도 사용)

# ls 명령어로 test.tar.gz가 잘 생성되었는지 확인

 

 

압축 풀 때 (흔히 보통 리눅스에서 소스 파일을 다운받아 이 명령어로 가장 많이 사용할 것입니다.)

실험을 위해 다른 파일들을 지우도록 하겠습니다.

 

아래 화면을 참조하시길 바랍니다.

# ls 

# rm -rf test.tar

# rm -rf test1

# rm -rf test2

# rm -rf test3

# ls

 

 

# tar zxvf [파일명] gzip압축을 풀고 tar 묶은 파일들을 푸는 명령어

정말 많이 사용합니다.

 

 

# tar zxvf test.tar.gz

 

∴ 기존에 있던 test.tar.gz는 그대로 있고, 안에 있던 파일들이 풀려서 생김

 

반응형

댓글