gzip (.gz)
특징
- 가장 일반적이고 가벼운 압축 형식
- 리눅스/유닉스 시스템에서 널리 사용
- 빠른 압축 및 해제 속도
압축률
- 빠르고 경량한 압축 형식
- 상대적으로 중간 수준의 압축률
- CPU 부하가 낮음
명령어
- 압축
gzip filename
- 압축 해제
gunzip filename.gz gzip -d filename.gz
- 압축 레벨 설정 (1 ~ 9)
gzip -1 filename # 빠른 압축, 낮은 압축률 gzip -9 filename # 최대 압축, 느린 속도
- 원본 파일 유지
gzip -k filename # 압축 후 원본 파일 유지
- 사용 예시
# 단일 파일 압축 gzip document.txt # 여러 파일 압축 gzip file1.txt file2.txt file3.txt # 압축 해제 gunzip document.txt.gz # 압축 내용 확인 (압축 해제 없이) zcat document.txt.gz
주의 사항
- 단일 파일 압축에 최적
- 디렉토리 압축 불가 (tar 사용)
- 압축 해제 시 원본 파일 덮어씀
xz (.xz)
특징
- 최고 수준의 압축률
- 장기 보관 및 대용량 파일에 최적
- 매우 느린 압축/해제 속도
압축률
- 가장 높은 압축률
- 파일 크기 가장 작게 압축
- CPU 사용량이 상대적으로 높음
명령어
- 압축
xz filename
- 압축 해제
unxz filename.xz xz -d filename.xz
- 압축 레벨 설정 (1 ~ 9)
xz -0 filename # 빠른 압축, 낮은 압축률 xz -9 filename # 최대 압축, 매우 느린 속도
- 원본 파일 유지
xz -k filename # 압축 후 원본 파일 유지
- 사용 예시
# 단일 파일 압축 xz document.txt # 여러 파일 압축 xz file1.txt file2.txt file3.txt # 압축 해제 unxz document.txt.xz
주의사항
- 장기 보관 파일에 최적
- 압축/해제 속도 매우 느림
- 높은 CPU 및 메모리 사용
bzip2 (.bz2)
특징
- gzip보다 높은 압축률
- 대용량 파일 압축에 적합
- 상대적으로 느린 압축/해제 속도
압축률
- 높은 압축률
- CPU 사용량 높음
- 파일 크기 더 작게 압축
명령어
- 압축
bzip2 filename
- 압축 해제
bunzip2 filename.bz2 bzip2 -d filename.bz2
- 압축 레벨 설정 (1 ~ 9)
bzip2 -1 filename # 빠른 압축, 낮은 압축률 bzip2 -9 filename # 최대 압축, 느린 속도
- 원본 파일 유지
bzip2 -k filename # 압축 후 원본 파일 유지
- 사용 예시
# 단일 파일 압축 bzip2 document.txt # 여러 파일 압축 bzip2 file1.txt file2.txt file3.txt # 압축 해제 bunzip2 document.txt.bz2
주의사항
- 대용량 파일에 적합
- 압축 속도 느림
- 상대적으로 높은 CPU 리소스 소모
zip/unzip (.zip)
특징
- 크로스 플랫폼 호환 압축 형식
- Windows, Linux, macOS 모두 지원
- 여러 파일 동시 압축 가능
압축률
- 중간 수준의 압축률
- 빠른 압축/해제 속도
- 디렉토리 압축 가능
명령어
- 압축
zip archivename.zip file1 file2
- 압축 해제
unzip archivename.zip
- 압축 레벨 설정 (1 ~ 9)
bzip2 -1 filename # 빠른 압축, 낮은 압축률 bzip2 -9 filename # 최대 압축, 느린 속도
- 사용 예시
# 단일 파일 압축 zip document.zip document.txt # 여러 파일 압축 zip multiple.zip file1.txt file2.txt # 디렉토리 압축 zip -r project.zip project_folder # 압축 해제 unzip multiple.zip # 압축 파일 내용 확인 unzip -l multiple.zip
주의사항
- 크로스 플랫폼 호환성 높음
- 압축/해제 속도 빠름
- 원본 파일 유지됨
tar (.tar, .tar.gz, .tgz, .tar.xz …)
특징
- 리눅스/유닉스 시스템에서 가장 널리 사용되는 아카이브 형식
- 여러 파일이나 디렉토리를 하나의 파일로 묶는 데 사용
- 압축 없이 파일을 묶을 수 있으며, 다른 압축 형식과 결합하여 압축도 가능
- 압축 기능을 제공하지 않지만,
.tar.gz
나.tar.xz
와 같은 형식으로 압축을 추가할 수 있음 - 디렉토리 구조와 메타데이터를 유지하면서 파일을 묶음
명령어
1. 기본 동작 (파일 아카이브 및 압축)
1.1 파일 아카이브 생성 (압축 없이 파일 묶기)
- 옵션:
-c
,-f
-c
: 새로운 아카이브를 생성-f
: 아카이브 파일 이름 지정-C:
디렉토리 지정
명령어 예시:
tar -cf archive.tar file1 file2 tar -cz archive.tar -C /path/to/directory file1 file2
file1
,file2
를archive.tar
로 묶음.
1.2 파일 압축 생성 (압축 포함)
- 옵션:
-c
,-f
,-z
(gzip 압축),-J
(xz 압축) -j (bzip2 압축)-z
: gzip 압축을 사용하여 아카이브 생성-J
: xz 압축을 사용하여 아카이브 생성-j:
bzip2 압축을 사용하여 아카이브 생성
명령어 예시:
tar -czf archive.tar.gz file1 file2 tar -cJf archive.tar.xz file1 file2 tar -cjf archive.tar.bz2 file1 file2
file1
과file2
를 각각 gzip 또는 xz, bzip2 압축을 사용하여 아카이브로 묶음.
1.3 디렉토리 압축
- 옵션:
-c
,-f
,-r
(디렉토리 포함)
명령어 예시:
tar -czf archive.tar.gz directory/
directory/
디렉토리 내 모든 파일과 하위 디렉토리를 포함하여 gzip으로 압축한 아카이브 생성.
2. 파일 압축 해제 (아카이브 풀기)
2.1 파일 압축 해제 (기본 아카이브 풀기)
- 옵션:
-x
,-f
-x
: 아카이브에서 파일을 추출-f
: 아카이브 파일 이름 지정
명령어 예시:
tar -xf archive.tar tar -xf archive.tar -C /path/to/destination
archive.tar
에서 파일을 압축 해제하여 현재 디렉토리에 복원.
2.2 압축 해제 (gzip 압축 해제)
- 옵션:
-x
,-f
,-z
-z
: gzip 압축 해제
명령어 예시:
tar -xzf archive.tar.gz
archive.tar.gz
에서 압축을 풀고 파일을 복원.
2.3 압축 해제 (xz 압축 해제)
- 옵션:
-x
,-f
,-J
-J
: xz 압축 해제
명령어 예시:
tar -xJf archive.tar.xz
archive.tar.xz
에서 xz 압축을 해제하여 파일 복원.
2.4 압축 해제 (bzip2 압축 해제)
- 옵션:
-x
,-f
,-j
-j
: bzip2 압축 해제
명령어 예시:
tar -xjf archive.tar.bz2
archive.tar.bz2
에서 bzip2 압축을 해제하여 파일 복원.
3. 아카이브 내용 확인 및 목록 보기
3.1 아카이브 내용 확인 (목록 보기)
- 옵션:
-t
,-f
-t
: 아카이브의 내용을 목록으로 표시-f
: 아카이브 파일 이름 지정
명령어 예시:
tar -tf archive.tar
archive.tar
아카이브의 내용을 목록으로 표시 (압축 해제하지 않고).
3.2 압축 해제 없이 내용 확인 (gzip 압축 아카이브)
- 옵션:
-t
,-f
,-z
명령어 예시:
tar -tzf archive.tar.gz
archive.tar.gz
아카이브의 내용을 확인, 압축 해제하지 않음.
4. 아카이브에서 특정 파일 추출
4.1 특정 파일만 추출
- 옵션:
-x
,-f
-x
: 아카이브에서 파일을 추출-f
: 아카이브 파일 이름 지정- 특정 파일 이름을 지정하여 해당 파일만 추출
명령어 예시:
tar -tzf archive.tar.gz
archive.tar
에서file1.txt
만 추출.
5. 원본 파일 유지 및 덮어쓰기 방지
5.1 원본 파일 유지 (압축 후 원본 파일 삭제 방지)
- 옵션:
-k
-k
: 압축 해제 후 원본 파일을 덮어쓰지 않음
명령어 예시:
tar -xkf archive.tar
archive.tar
를 압축 해제하면서 원본 파일을 덮어쓰지 않음.
6. 압축 옵션
6.1 압축 수준 설정
- 옵션:
-z
,-J
-z
: gzip 압축을 사용할 때 압축 수준 설정-J
: xz 압축을 사용할 때 압축 수준 설정-j:
bzip2 압축을 사용할 때 압축 수준 설정
명령어 예시:
# gzip 압축 (빠른 압축) tar -czf archive.tar.gz --fast file1 file2 # gzip 압축 (최대 압축) tar -czf archive.tar.gz --best file1 file2 # xz 압축 (빠른 압축) tar -cJf archive.tar.xz --fast file1 file2 # xz 압축 (최대 압축) tar -cJf archive.tar.xz --best file1 file2 # bzip2 압축 (빠른 압축) tar -cjf archive.tar.bz2 --fast file1 file2 # bzip2 압축 (최대 압축) tar -cjf archive.tar.bz2 --best file1 file2 # 1-9 사이의 숫자로 gzip 압축 수준 지정 tar -cz9f archive.tar.gz file1 file2 # 최대 압축 tar -cz1f archive.tar.gz file1 file2 # 최소 압축 # xz 압축도 동일하게 적용 tar -cJ9f archive.tar.xz file1 file2 # 최대 압축 tar -cJ1f archive.tar.xz file1 file2 # 최소 압축 # bzip2 압축도 동일하게 적용 tar -cj9f archive.tar.bz2 file1 file2 # 최대 압축 tar -cj1f archive.tar.bz2 file1 file2 # 최소 압축 # gzip 압축 (최대 압축) 및 디렉토리 변경 tar -czf archive.tar.gz --best -C /path/to/directory file1 file2 # xz 압축 (최대 압축) 및 디렉토리 변경 tar -cJf archive.tar.xz --best -C /path/to/directory file1 file2 # bzip2 압축 (최대 압축) 및 디렉토리 변경 tar -cjf archive.tar.bz2 --best -C /path/to/directory file1 file2
--fast
는 압축 속도를 빠르게 하여 압축률은 낮추고,--best
는 최대 압축을 하여 압축률을 높입니다.
7. 기타 유용한 옵션
7.1 아카이브를 다른 파일로 출력
- 옵션:
-O
-O
: 파일을 표준 출력으로 출력
명령어 예시:
tar -xO -f archive.tar file1.txt
archive.tar
에서file1.txt
를 추출하여 표준 출력으로 출력 (파일로 저장하지 않음).
7.2 파일 패턴으로 추출
- 옵션:
--wildcards
- 특정 패턴에 맞는 파일만 추출
명령어 예시:
tar -xf archive.tar --wildcards '*.txt'
archive.tar
에서.txt
파일만 추출.
정리
-c
: 아카이브 생성-C:
디렉토리 지정-x
: 아카이브에서 파일 추출-t
: 아카이브 내용 확인-f
: 아카이브 파일 이름 지정-z
: gzip 압축/해제-J
: xz 압축/해제-j
: bzip2 압축/해제-k
: 원본 파일 유지-O
: 표준 출력으로 파일 출력--wildcards
: 파일 패턴으로 추출