아카이브(Archive)와 압축(Compress)

나나's Brain·2024년 7월 7일

Linux

목록 보기
4/11
post-thumbnail

📁 아카이브와 압축이란?

아카이브(Archiving): 여러 파일과 폴더를 하나의 파일로 묶는 것. 용량은 줄어들지 않음.

압축(Compression): 파일이나 아카이브를 알고리즘을 통해 용량을 줄이는 것.

🔖 파일 아카이브

TAR(Tape ARchives): 여러 파일과 폴더를 하나로 묶기 위한 리눅스 명령어.
용량은 줄어들지 않지만 파일 구조를 유지하며 하나로 관리 가능

✅ TAR 명령어 옵션

-f	파일 지정
-c	새 아카이브 생성
-x	아카이브에서 파일 추출
-v	자세한 정보 표시
-z	gzip 형식으로 압축/압축 해제
-j	bzip2 형식으로 압축/압축 해제
-t	아카이브 내용 나열
-C	디렉토리 변경
-A	아카이브 병합
-d	차이점 확인
-r	아카이브에 파일 추가
-u	아카이브 업데이트
-k	덮어쓰기 방지
-U	압축 해제 시 덮어쓰기
-w	대화형 확인
-e	오류 발생 시 즉시 종료

✅ TAR 명령어 예시

$ 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.tgzzip과 같은 알고리즘 사용. 다른 파일 간 중복 부분을 하나로 압축해서 용량을 줄일 수 있음. 일반적인 용도에 적합하고 널리 사용됨.41
xzip.tar.xz.txzLZMA2 압축 알고리즘 사용. 윈도우의 7-zip과 유사하지만 유닉스 시스템을 위해 설계됨. 압축률이 가장 좋음.16
bzip2.tar.bz2.tb2, .tbz, .tbz2큰 용량의 파일에 사용하기 좋음. gzip보다 압축률은 좋지만, 압축과 해제 속도가 느림.33
Z.tar.Z.tZASCII나 바이너리 파일을 의미. 오래된 압축 형식이고, 현재는 더 효율적인 압축 방식이 많이 사용됨.62
lzma.tar.lzma.tlzbzip2보다 더 높은 압축률 제공. 최대 4GB까지 압축 가능.25
lz.tar.lz-LZMA 알고리즘 기반. 무결성 확인을 위한 CRC 체크섬 지원. 데이터 손상을 방지하고 정확성을 유지하는 데 유용함.54

✅ 압축 명령어

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                 # 압축 해제
profile
"로컬에선 문제없었는데…?"

0개의 댓글