우분투 파일 압축 및 해제 방법 3가지(리눅스 압축 명령어 tar.gz, tar.bz2, tar.xz)

우분투 뿐 아니라 리눅스를 사용하다보면 .zip의 확장자 뿐 아니라 .tar.gz 형식의 압축 파일을 만났을 때 당황하지 않으셨나요? 우분투 파일 압축과 해제 방법을 압축 파일의 종류별로 살펴보겠습니다.

살펴볼 명령어에는 수많은 옵션이 있습니다만, 여기에서는 최소한으로 꼭 알면 도움이 되는 내용들만 정리했습니다.

.tar 확장자

tar 이용하여 파일 묶기

간혹 .tar 확장자를 갖는 파일이 있습니다. .tar 파일은 압축 파일은 아닙니다. 압축은 하나도 하지 않았지만, 파일들을 하나로 묶은 파일입니다. 압축 명령은 아니지만 사용법을 간단히 살펴보겠습니다. 우선 파일을 묶는 방법은 다음 명령과 같습니다. a.txt와 b.txt 파일 2개를 묶어서 text_file.tar로 묶어보겠습니다.

사용법: tar cf 결과파일명.tar 묶을파일1 묶을파일2 묶을파일3 ...
tar cf text_file.tar a.txt b.txt
ShellScript

여기에서 옵션 cf는 -cf로 해도 되고 간단히 cf라고만 해도 됩니다. c는 create의 줄임말로 새로운 아카이브를 만들겠다는 의미입니다. f는 파일을 대상으로 하겠다는 의미입니다. 그리고 희망하는 파일은 뒤에 더 붙여서 입력해 주시면 됩니다.

하지만 파일이 너무 많아서 이렇게 묶기 불편할 때가 있죠? 바로 디렉토리(폴더)를 묶고 싶은 상황입니다. 만약 a.txt와 b.txt가 text_files라는 디렉토리에 있다고 가정했을 때에는 다음과 같이 파일이름을 적는 곳에 디렉토리 이름을 적어주시면 됩니다. 참고로 리눅스는 디렉토리도 하나의 파일로 취급합니다.

tar cf text_file.tar text_files
ShellScript

디렉토리를 묶을 때 어떤 파일들이 묶이는지 보고 싶다면 다음과 같이 v 옵션을 추가해 주시면 됩니다.

tar cvf text_file.tar text_files
ShellScript

v옵션을 추가해 주면 아래와 같이 현재 묶는 파일들을 보여줍니다.

그림 1. tar 이용하여 파일 묶기
그림 1. tar 이용하여 파일 묶기

tar 이용하여 파일 풀기

이제 묶은 파일을 풀어줘야겠죠? 풀어주는 명령어는 xf 입니다. extract의 줄임말로 옵션 x를 사용합니다. 위에서 묶은 text_file.tar를 풀어주겠습니다. 어떤 파일을 풀어주는지 보기위해 v도 함께 사용해 보겠습니다.

tar xf text_file.tar
ShellScript

파일을 묶어줄때와 화면 출력 내용은 동일하죠? 동일한 파일을 묶고 푼 거니까요.

그림 2. tar 이용하여 파일 풀기
그림 2. tar 이용하여 파일 풀기

.tar.gz 파일 압축

.tar.gz 압축하기

tar 명령어를 사용해서 파일을 묶고, 압축 라이브러리 gzip으로 압축하는 방식입니다. 여기에는 옵션에 z만 추가해 주면 됩니다. z 옵션을 주면 gzip 라이브러리를 이용해서 압축 기능을 사용하겠다는 의미입니다. –gzip 옵션을 대신 사용하셔도 됩니다. 위에서 사용했던 text_files 디렉토리와 하위에 있는 모든 파일을 압축하고 싶다면 아래와 같이 입력하면 됩니다.

tar zcvf text_file.tar.gz text_files
ShellScript

.tar.gz 압축풀기

tar 이용시와 마찬가지로 x 옵션을 사용할 것입니다. gzip 압축 라이브러리로 압축을 해제할 것이니까 z를 함께 사용해 줍니다.

tar zxvf text_file.tar.gz
ShellScript
그림 3. 확장자 .tar.gz로 파일 압축하기 및 압축풀기
그림 3. 확장자 .tar.gz로 파일 압축하기 및 압축풀기

.tar.bz2 파일 압축

.tar.bz2 압축하기

bzip2는 gzip보다 압축률이 더 좋은 방식으로 압축합니다. 처음 .tar.bz2 확장자를 마주하신 분들은 좀 당황스러울 수 있는데요. gzip과 별 차이 없습니다. bzip2 로 압축하는 옵션만 바꿔주면 gzip 압축처럼 나머지 옵션은 동일하게 이용할 수 있습니다. gzip에서는 z 옵션을 사용했죠? bzip2는 j 옵션을 대신 사용해 주시면 됩니다. 단, j 옵션은 꼭 소문자를 사용해 주셔야 합니다. –bzip2 옵션을 대신 사용할 수도 있습니다.

tar jcvf text_file.tar.bz2 text_files
ShellScript

.tar.bz2 압축풀기

이제는 구체적으로 설명 안해도 감 오시죠? bzip2니까 j 옵션, 풀기니까 x 옵션 사용하면 됩니다.

tar jxvf text_file.tar.bz2
ShellScript

.tar.xz 파일 압축

.tar.xz 압축하기

xz 압축 적용 역시 마찬가지입니다. xz는 대문자 J 옵션을 대신 사용해 주시면 됩니다. 소문자 j를 사용하시면 bzip2가 적용되니 xz 이용시에는 정확하게 대문자 J 사용해 주세요. –xz 옵션을 대신 사용할 수도 있습니다.

tar Jcvf text_file.tar.xz text_files
ShellScript

.tar.xz 압축풀기

설명 필요없죠? xz니까 J 옵션, 풀기니까 x 옵션 사용하면 됩니다.

tar Jxvf text_file.tar.xz
ShellScript

정리

여기까지 다 읽으신 분들은 이제 파일 압축하고 압축 파일을 푸는 방법에 대해서는 손쉽게 해결할 수 있을 겁니다. 파일을 묶는 건 c, 파일을 푸는 건 x, gzip 압축은 z, bzip2 압축은 j, xz 압축은 J를 옵션으로 사용하면 됩니다.

관련 자료

tar의 man 페이지를 참고했습니다.

함께 읽으면 좋은 글