Ubuntu – File Compression (파일 압축)

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
  • file1file2를 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: 파일 패턴으로 추출

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤