아카이브(Archiving): 여러 파일과 폴더를 하나의 파일로 묶는 것. 용량은 줄어들지 않음.
압축(Compression): 파일이나 아카이브를 알고리즘을 통해 용량을 줄이는 것.
TAR(Tape ARchives): 여러 파일과 폴더를 하나로 묶기 위한 리눅스 명령어.
용량은 줄어들지 않지만 파일 구조를 유지하며 하나로 관리 가능
-f 파일 지정
-c 새 아카이브 생성
-x 아카이브에서 파일 추출
-v 자세한 정보 표시
-z gzip 형식으로 압축/압축 해제
-j bzip2 형식으로 압축/압축 해제
-t 아카이브 내용 나열
-C 디렉토리 변경
-A 아카이브 병합
-d 차이점 확인
-r 아카이브에 파일 추가
-u 아카이브 업데이트
-k 덮어쓰기 방지
-U 압축 해제 시 덮어쓰기
-w 대화형 확인
-e 오류 발생 시 즉시 종료
$ tar cvf 파일명.tar * # 현재 디렉토리 모든 파일 묶기
$ tar cvf 파일명.tar [PATH] # 대상 디렉토리 묶기
$ tar cvf 파일명.tar [FILE_1] [FILE_2] # 특정 파일 묶기
$ tar tvf 파일명.tar # 아카이브 내용 확인
$ tar xvf 파일명.tar # 아카이브 풀기
$ tar xvf 파일명.tar -C [PATH] # 지정 디렉토리에 풀기
$ tar zcvf 파일명.tar.gz * # gzip으로 압축
$ tar zxvf 파일명.tar.gz # gzip 압축 풀기
$ tar jcvf 파일명.tar.bz2 * # bzip2으로 압축
$ tar jxvf 파일명.tar.bz2 # bzip2 압축 풀기
| 압축형태 | 확장자 기본 | 확장자 축약 | 설명 | 압축률 | 압축 및 해제 시간 |
|---|---|---|---|---|---|
| gzip | .tar.gz | .tgz | zip과 같은 알고리즘 사용. 다른 파일 간 중복 부분을 하나로 압축해서 용량을 줄일 수 있음. 일반적인 용도에 적합하고 널리 사용됨. | 4 | 1 |
| xzip | .tar.xz | .txz | LZMA2 압축 알고리즘 사용. 윈도우의 7-zip과 유사하지만 유닉스 시스템을 위해 설계됨. 압축률이 가장 좋음. | 1 | 6 |
| bzip2 | .tar.bz2 | .tb2, .tbz, .tbz2 | 큰 용량의 파일에 사용하기 좋음. gzip보다 압축률은 좋지만, 압축과 해제 속도가 느림. | 3 | 3 |
| Z | .tar.Z | .tZ | ASCII나 바이너리 파일을 의미. 오래된 압축 형식이고, 현재는 더 효율적인 압축 방식이 많이 사용됨. | 6 | 2 |
| lzma | .tar.lzma | .tlz | bzip2보다 더 높은 압축률 제공. 최대 4GB까지 압축 가능. | 2 | 5 |
| lz | .tar.lz | - | LZMA 알고리즘 기반. 무결성 확인을 위한 CRC 체크섬 지원. 데이터 손상을 방지하고 정확성을 유지하는 데 유용함. | 5 | 4 |
compress: 오래된 유닉스 압축 프로그램. 현재는 잘 사용되지 않음.
$ sudo apt-get install ncompress
$ compress [아카이브 FILE명]
$ uncompress [아카이브 FILE명]
gzip/gunzip: tar 명령어와 함께 사용됨.
$ sudo apt-get install gzip
$ gzip [옵션] [아카이브FILE명]
$ gzip -d [아카이브FILE명]
$ gunzip [아카이브FILE명]
$ gzip -l [아카이브FILE명]
$ zcat [아카이브FILE명]
bzip2/bunzip2: 블록 정렬 알고리즘 사용, gzip보다 느림.
$ sudo apt-get install bzip2
$ bzip2 text.txt
$ bunzip2 text.txt.bz2
xz/unxz: LZMA2 알고리즘 사용, 높은 압축률.
$ xz [옵션] [아카이브 FILE명]
$ xz -d [아카이브 FILE명]
$ unxz [옵션] [아카이브 FILE명]
zip/unzip: 원본 파일을 유지하며 압축, 윈도우와 유사.
$ sudo apt-get install zip
$ zip [압축할 FILE명].zip [아카이브 또는 FILE명]
$ unzip [압축할 FILE명]
$ zip mylog.zip mylog.log # 단일 파일 압축
$ zip mylog.zip mylog1.log mylog2.log mylog3.log # 다중 파일 압축
$ zip -r test.zip ./* # 디렉토리 압축
$ unzip test.zip # 압축 해제