웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > linux

간단한 tar.gz 압축해제 방법

Last Modified : 2023-11-21 / Created : 2015-12-04
6,037
View Count

리눅스(linux)에서 압축하거나 해제할 경우 어떻게 해야할까요? 아래에서 자세히 알아봅니다.

리눅스에서 파일 압축 방법은 우리가 윈도우즈를 통해 흔히 봐오던 확장자명들과는 조금 다른 방법이 많이 사용됩니다. 예를들어  egg, zip과 같은 확장자가 아니라 tar 또는 tar.gz 형태가 많이 사용되죠. 아래는 tar, tar.gz 파일을 리눅스에서 압축 해제하거나 또는 압축하는 방법에 대하여 알아보고자 합니다.



# tar 압축 방법 및 선택 옵션 알아보기

아래는 tar 명령어를 사용하여 리눅스에 압축하거나 해제시 사용하는 주요한 옵션값과 이에 대한 설명입니다.


-c : 압축 파일의 생성
-x : tar형태의 압축 해제
-z : gzip형태의 압축 또는 해제(tar.gz와 같이 압축된 경우 사용 가능)
-p : 파일권한 내용을 저장함
-v : (verbose) 압축 또는 해제 과정의 내용을 화면출력함 
-f : 해당하는 파일 이름을 지정함 


가장 기본적으로 사용되는 중요한 옵션이 바로 -c와 -x 두 가지 입니다. 여기서 c는 압축을 위한 compress를 의미합니다. 그리고 x는 해제를 위한 extract를 의미하게 됩니다.

@ gzip으로 압축하는 -z 옵션은?
여기서 -z 옵션은 gzip 압축을 사용하기 위해서 필요한 옵션입니다.  그래서 -z 옵션을 사용할 경우 시간은 더 걸리지만 압축되어 파일의 크기는 더 줄어드는 장점이 있습니다. 그래서 일반적인 경우라면 -z을 사용하여 gzip 압축 방식이 많이 선호됩니다.


! tar 또는 tar.gz 형태의 압축 또는 압축해제 방법보기

아래 예제는 압축 또는 해제를 수행하는 방법입니다. 먼저 tar는 압축이나 해제시 확장자 tar 또는 tar.gz를 선택할 수 있습니다. 두 가지 방법의 차이점은 압축률, 손실 여부 등의 차이입니다. 잘 모르시면 페이지 하단을 먼저 참고하세요.

(참고로 압축률, 용량이 중요한 경우 tar.gz 방식으로 ... 최대한 빨리 압축률 보다는 압축파일 생성이 목적인 경우 tar 방식이 좋습니다.)



tar를 사용하는 압축하기


무손실 압축 방식입니다. 압축을 원하는 경우 아래의 tar.gz으로 압축하세요!
# tar 타입으로 압축할 경우
> tar -cvf 생성될파일명 압축대상


# tar 타입 압축 해제할 경우
> tar -xvf 압축대상파일명

예를들어 현재 경로의 test.gif라는 파일을 압축하여 test.tar 파일을 생성하려면 다음과 같이 입력합니다.
tar -cvf test.tar test.gif

디렉토리의 경우도 동일합니다. 만약 testFolder라는 디렉토리를 압축하려면 다음과 같습니다.
tar -cvf test.tar testFolder

다음으로 -z 옵션을 사용하는 방법을 알아봅니다.


tar.gz를 사용하는 압축 방식


이번에는 tar.gz 방식의 압축 및 해제입니다. 방법은 역시 위와 동일합니다. 생성될 파일명 그리고 압축할 대상을 입력합니다.
tar.gz 타입으로 압축하는 경우
> tar -zcvf 파일명 폴더명


tar.gz 타입 압축 해제할 경우
> tar -zxvf 파일명

이번에도 예를들어 압축해봅니다. 현재 경로의 test.gif라는 파일을 압축하여 test.tar 파일을 생성하려면 다음과 같이 입력합니다.
tar -zcvf test.tar.gz test.gif

디렉토리의 경우도 동일합니다. 만약 testFolder라는 디렉토리를 압축하려면 다음과 같습니다.
tar -zxvf test.tar.gz testFolder

위와 같은 방법을 사용할 경우 매우 간단하게 리눅스에서 압축 및 해제가 가능합니다.


tar 압축시 일부 파일 및 경로를 제외하는 방법, exclude


파일 압축시 모든 파일을 다 압축할 필요가 없는 경우가 있을 것입니다. 예를들어 프로젝트 내부의 node_modules나 .nuxt 폴더 같이 설치하거나 빌드하여 사용하는 경우가 대표적이겠죠. 이 경우 해당 폴더 제외를 위해서 --exclude=<파일 및 경로이름>을 사용하여 가능합니다.
tar -cvzf test.tar.gz --exclude=node_modules --exclude=.nuxt .

위 예제를 보면 현재 경로에서 node_modules 폴더를 제외하여 압축하는 방법입니다. 보시면 --exclude가 여러 번 사용되었는데 이렇게 여러 개의 파일이나 경로를 한 번에 제외하는 것이 가능합니다. 위 명령어를 실행하면 현재 경로의 모든 파일에서 node_modules와 .nuxt를 제외하여 압축 후 test.tar.gz 파일을 생성하게 됩니다. 매우 자주 사용되는 유용한 방법입니다.


tar 또는 tar.gz 그리고 tar.bz2 차이점 보기


위에서는 리눅스에서 tar를 사용한 압축 방법을 간략히 알아봤는데요 ~ tar와 tar.gz 그리고 tar.bz2 모두 압축 및 압축 해제가 가능한 방법입니다. 이 들의 차이점을 알아보면 다음과 같습니다.

  • tar :  속도가 빠름. 무손실로 해당하는 범위 패키징하는 방식임. 단 압축률은 0%.
  • tar.gz : 적당한 속도와 압축률을 가지고 있는 가장 잘 쓰이는 형태
  • tar.bz2 : 이 방식은 가장 높은 압축률을 가지고 있음

여기까지 리눅스에서 많이 사용되는 tar 압축 및 해제 방법을 자세하게 알아봤습니다.

Previous

linux에서 디렉토리와 관련된 명령어 정보