본문 바로가기

리눅스

[draft] 리눅스 압축 명령어 tar, gzip, zip

리눅스 압축 명령어 tar, gzip, zip

리눅스에서 파일을 압축하거나 묶을 때 가장 많이 쓰는 명령어는 tar, gzip, zip 입니다.

tar 명령어 - 파일 묶기 & 압축하기

tar(Tape ARchiver)는 여러 파일을 하나로 묶는 도구입니다.

보통 gzip이나 bzip2, xz와 함께 써서 압축까지 진행합니다.

 

기본 사용법

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

옵션 설명

  • c : create (새로 묶기)
  • x : extract (풀기)
  • t : list (내용 확인)
  • v : verbose (상세 출력)
  • f : file (파일 지정)

묶기

  • foo 디렉토리를 foo.tar로 묶음
tar cvvf foo.tar foo/
drwxr-xr-x root/root         0 2022-03-03 17:08 foo/
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file1.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file2.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file3.txt

풀기

  • foo.tar 압축 해제
tar xvf foo.tar
drwxr-xr-x root/root         0 2022-03-03 17:08 foo/
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file1.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file2.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file3.txt

목록 보기

  • tar 파일 내용 확인
tar tvf foo.tar
drwxr-xr-x root/root         0 2022-03-03 17:08 foo/
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file1.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file2.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file3.txt

gzip과 함께 사용(.tar.gz)

압축하면서 묶기

tar cvfz foo.tar.gz foo/
foo/
foo/file1.txt
foo/file2.txt
foo/file3.txt

압축 풀기

tar xvfz foo.tar.gz
drwxr-xr-x root/root         0 2022-03-03 17:08 foo/
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file1.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file2.txt
-rw-r--r-- root/root         0 2022-03-03 17:08 foo/file3.txt

경로 지정하여 풀기

tar xfz foo.tar.gz -C tmp2/
-z 옵션은 gzip 압축을 의미합니다.
(.tar.bz2의 경우 -j, .tar.xz의 경우 -J 사용)

주요 옵션

  • -c : 새 tar 파일 생성
  • -x : 압축 풀기
  • -t : 파일 목록 보기
  • -f : 파일 이름 지정
  • -v : 처리 과정 출력
  • -z : gzip 압축
  • -j : bzip2 압축
  • -J : xz 압축
  • -C : 특정 디렉토리로 압축 풀기

gzip 명령어 - 단일 파일 압축

gzip은 단일 파일을 압축할 때 사용합니다.

(tar.gz는 여러 파일을 tar로 묶은 후 gzip으로 압축한 형태입니다.)

기능 명령어 설명
압축 gzip foofile foofile → foofile.gz 로 압축
압축 해제 gzip -d foofile.gz foofile.gz 해제
압축률 확인 gzip -l foofile.gz 압축/비압축 크기 확인
압축 레벨 지정 gzip -9 foo 최대 압축률로 압축
gzip은 파일 하나당 하나의 .gz를 만듭니다. 폴더 전체를 압축하려면 tar와 함께 써야 합니다.
gzip -l foofile.gz
         compressed        uncompressed  ratio uncompressed_name
                 28                   0   0.0% foofile

gunzip - gzip 압축 해제 전용

gunzip은 gzip -d와 동일한 기능을 수행합니다.

gunzip foofile.gz

압축이 풀리면 원본 파일(foofile)이 복원됩니다.

zip / unzip - 윈도우 호환 압축

zip은 윈도우와 호환되는 압축 포맷으로, 여러 파일을 한 번에 압축할 수 있습니다.

 

zip 압축

zip foofile.zip file1.txt file2.txt file3.txt
  adding: file1.txt (stored 0%)
  adding: file2.txt (stored 0%)
  adding: file3.txt (stored 0%)

unzip 해제

unzip foofile.zip
Archive:  foofile.zip
 extracting: file1.txt
 extracting: file2.txt
 extracting: file3.txt

경로 지정하여 해제

unzip foofile.zip -d tmp/
결과 : tmp/ 폴더 내에 파일이 추출됩니다.

tar.xz 파일 압축 해제

xz는 gzip보다 높은 압축률을 제공합니다.

(tar와 함께 쓰면 .tar.xz 확장자)

tar xf foo.tar.xz

또는 명시적으로

tar xvfJ foo.tar.xz
-J : xz 압축 해제 옵션