본문 바로가기
기록하는 중/UNIX

[Unix] 압축

by 성장하는 요롱이 2023. 12. 21.
  파일 압축

  -  시스템 파일이나 데이터를 백업할 때 필요 참고) rsync

  -  압축을 통해 디스크 공간으 절약하거나 데이터 전송 시간을 줄일 수 있음

  -  다양한 압축 기술이 존재

  -  공간 효율과 압축 속도에서 차이가 남, gzip, bzip2, xz, zip 등

 

 gzip 명령

  -  압축 파일의 형식이자 파일의 압축과 해제를 위한 프로그램

  -  가장 널리 사용되는 리눅스의 기본 압축 프로그램

  -  초기 Unix 시스템의 압축 프로그램을 GNU 프로젝트에서 수정한 버전

  gzip [options] [files]

  -  압축한 후 원본 파일은 .gz 확장자를 갖는 파일로 대체됨

  -  gzip file을 수행하면 file은 없어지고 file.gz이 만들어짐

옵션 설명
-c  결과를 표준 출력으로 보내고 원본 파일은 그대로 유지됨
-d  압축을 풀 때 사용하며 gunzip 명령과 같음
-r  인수로 디렉터리가 주어질 때 디렉터리에 포함된 모든 파일을 재귀적으로 탐색하여 압축함
-t  압축 파일의 무결성을 검사함
-v  압축 또는 해제하면서 파일의 이름과 압축률을 출력해줌
-number  압축률을 의미하는 1~9 사이의 값을 주며 기본값은 6
 -1은 압축을 빨리, -9 압축률을 높이여라

 

 gunzip 명령

  -  .gz, .Z, .tgz, .taz 등의 확장자를 가진 압축파일을 풀고 확장자를 제거함(.tgz은 .tar.gz, .taz는 .tar.Z을 의미)

옵션 설명
 gzip foo.txt  압축 파일 foo.txt.gz이 만들어지고 원본 파일은 없어짐
 gzip -d foo.txt.gz  압축을 풀고 원본 파일을 다시 만듦. 압축 파일은 없어짐
 gzip *.txt  확장자가 .txt인 모든 파일에 대해 개별적으로 압축함
 gunzip -d *.gz  모든 압축 파일을 풀고 원본 파일을 만듦
 gzip -c file1 > bar.gz
 gzip -c file2 >> bar.gz
 file1을 압축하여 bar.gz을 만들고
 file2를 압축하여 bar.gz에 추가함
 gunzip -c bar.gz  압축을 풀고 결과를 표준 출력으로 보냄. 기존 압축 파일은 그대로 유지함
 gzip -c file1 file2 > baz.gz  두 파일을 각각 압축한 후 연결시켜 압축 파일 bar.gz을 만듦

 

  bzip2 명령

  -  블록 정렬 압축 알고리즘을 사용한 파일 압축 프로그램

  -  gzip과 유사하나 압축 효율이 매우 좋음(압축 속도는 느림)

  -  압축 후 파일 크기가 매우 작아짐(큰 파일에 사용하면 좋음)

  -  사용법은 gzip과 유사하며 압축 파일의 확장자로 .bz2를 사용

  -  bzip2 file은 원본 파일을 없애고 file.bz2를 만듦

  -  bzip2 -k file 는 원본 파일을 보존함

  -  bzip2 -d file.bz2 은 bunzip2 file.bz2과 같음

  - bunzip2 -c file.bz2는 bzcat file.bz2와 같음

 

  tar 명령

  -  여러 파일을 하나의 아카이브 파일로 묶거나 아카이브 파일에서 파일을 추출하는 명령

  -  아카이브는 백업 등의 목적으로 여러 파일을 하나로 묶은 것

  -  tar mode [options] [tarfile] [pathnames ...]

  -  tarfile은 아카이브 (묶음 파일)을 의미

  -  pathname은 아카이브에 넣을 파일이나 디렉터리

  -  아카이브 파일의 확장자는 보통 .tar를 사용함

  -  모드나 옵션을 사용할 때 대시(-)를 사용하지 않는 편임

모드 설명
A tar 파일을 아카이브에 추가
c 새로운 아카이브의 생성
x 아카이브로부터 파일을 추출
r 아카이브에 파일을 추가
t 아카이브에 포함된 파일의 목록을 출력

 

옵션 설명
f  아카이브 파일을 지정(사용하지 않으면 아카이브 내용이 화면으로 출력됨)
v  처리 과정에서 대상 파일을 보여줌
z  tar 명령에서 gzip을 사용(.tar.gz)
j  tar 명령에서 bzip2를 사용(.tar.bz2)

 

옵션 설명
tar cvf foo.tar *.c  현재 디렉터리에서 .c로 끝나는 모든 파일을 foo.tar로 묶어 만들고 진행 결과를  출력함
tar tvf foo.tar  아카이브 foo.tar에 있는 파일 목록을 출력함
tar xvf foo.tar  현재 디렉터리에 아카이브 foo.tar를 풀어줌
tar cvf bar.tar backup/  디렉터리 backup의 내용을 묶어 아카이브 bar.tar를 만듦
tar cvfz baz.tar.gz backup/  위와 같으나 아카이브를 만들 때 gzip을 이용하여 압축함
tar xvfz baz.tar.gz  gzip으로 압축된 아카이브를 풀어줌

 

'기록하는 중 > UNIX' 카테고리의 다른 글

[Unix] 변수의 사용  (0) 2023.12.22
[Unix] 셸 스크립트  (0) 2023.12.21
[Unix] DNF  (0) 2023.12.17
[Unix] RPM  (0) 2023.12.17
[Unix] 패키지 관리  (0) 2023.12.12