Archive / Compress

정승균·2020년 12월 10일
0

리눅스

목록 보기
9/29
post-thumbnail

Ⅰ. Archive


  • 여러 파일을 묶는 작업
  • BSD 계열 : tar / SysV 계열 : cpio

1. 아카이브 생성

  • $ tar cf XXX.tar file1 file2 ...
  • $ tar c file1 file2 ... > XXX.tar
jsg@jsg-ubuntu:~$ tar cf archive.tar testdir
jsg@jsg-ubuntu:~$ ls -l archive.tar
-rw-rw-r-- 1 jsg jsg 10240 Dec 10 23:32 archive.tar

2. 아카이브 리스트 보기

  • $ tar tf XXX.tar
jsg@jsg-ubuntu:~$ tar -tf archive.tar
testdir/
testdir/hello.txt
testdir/test.txt

3. 아카이브 추출

  • $ tar xf XXX.tar -C directory
  • -C 옵션이 없으면 현재 디렉토리에
jsg@jsg-ubuntu:~$ tar -xf archive.tar -C testdir2
jsg@jsg-ubuntu:~$ ls -R testdir2
testdir2:
testdir
testdir2/testdir:
hello.txt  test.txt

Ⅱ. Compress


  • 압축하는 작업

1. 종류

  • gzip(.gz), bzip2(.bz2) : 옛날 방식으로 현재에서는 잘 쓰이지 않음
  • xz(.xz) : 압축률이 매우 높으나 시간이 오래 걸림
  • zstd(.zst) : 성능도 준수하고 시간도 빠름
  • 옵션(-c : stdout으로 보냄, -d : 압축 풀기, -T숫자 : 멀티스레딩)은 같아 사용법이 비슷함.

2. 압축

  • $ tar c files | gzip -c > compress.tar.gz
jsg@jsg-ubuntu:~$ tar c testdir | gzip -c > compress.tar.gz
jsg@jsg-ubuntu:~$ ls -l compress.tar.gz 
-rw-rw-r-- 1 jsg jsg 196 Dec 11 00:01 compress.tar.gz

3. 압축 해제

  • $ gzip -cd compress.tar.gz | tar x
jsg@jsg-ubuntu:~$ rm -rf testdir
jsg@jsg-ubuntu:~$ gzip -cd compress.tar.gz | tar x
jsg@jsg-ubuntu:~$  ls testdir
hello.txt  test.txt

Ⅲ. 아카이브 + 압축


  • tar의 옵션을 이용해 아카이브와 압축을 한번에 할 수 있음
  • 하지만 멀티스레드 옵션을 주려면 파이프를 이용해야 함
옵션내용
z아카이브를 gzip으로 압축/해제
j아카이브를 bzip2로 압축/해제
J아카이브를 xz로 압축/해제
--zstd아카이브를 zstd로 압축/해제
a확장자를 보고 자동으로 판단
jsg@jsg-ubuntu:~$ tar cfa compress.tar.zst testdir
jsg@jsg-ubuntu:~$ ls -l compress.tar.zst 
-rw-rw-r-- 1 jsg jsg 10240 Dec 11 00:35 compress.tar.zst

jsg@jsg-ubuntu:~$ rm -rf testdir
jsg@jsg-ubuntu:~$ tar xfa compress.tar.zst
jsg@jsg-ubuntu:~$ ls testdir
hello.txt  test.txt

0개의 댓글