본문 바로가기

IT's Life/Linux

Linux gzip 명령 : 파일 또는 디렉토리 압축

Gzip은 Linux 에서 파일을 압축 및 압축 해제하는 데 주로 사용되는 명령으로,이 명령으로 얻은 새 파일은 일반적으로 확장자 ".gz"로 표시됩니다.

gzip 명령은 디렉토리를 지정하더라도 디렉토리를 압축하지 않고 파일을 압축하는 데만 사용할 수 있으며 디렉토리의 모든 파일 만 압축 할 수 있습니다.

gzip 명령의 기본 형식은 다음과 같습니다.

[root @ localhost ~] # gzip [옵션] 소스 파일

압축 작업을 수행 할 때 명령의 소스 파일은 일반 파일을 참조하고 압축 해제 작업을 수행 할 때는 압축 파일을 참조합니다. 이 명령에 일반적으로 사용되는 옵션과 의미가 표 1에 나와 있습니다.


표 1 gzip 명령의 공통 옵션 및 의미

옵션 

의미 

  -c 

압축 된 데이터는 표준 출력으로 출력되고 소스 파일은 유지됩니다. 

 -d

압축 파일을 압축 해제하십시오. 

 -r

지정된 디렉토리 및 서브 디렉토리 아래의 모든 파일을 재귀 적으로 압축하십시오. 

-v

압축 및 압축 해제 된 각 파일에 대해 해당 파일 이름과 압축 비율이 표시됩니다. 

 -l

각 압축 파일에 대해 다음 필드가 표시됩니다. 

  • 압축 파일의 크기입니다.
  • 압축되지 않은 파일의 크기입니다.
  • 압축비
  • 압축되지 않은 파일의 이름입니다.

 숫자

압축 수준을 지정하는 데 사용되며 -1 압축 수준이 가장 낮고 압축 비율이 가장 낮고 -9 압축 비율이 가장 높습니다. 기본 압축 비율은 -6입니다. 


[예 1] 기본 압축. 

gzip compression 명령은 매우 간단하므로 압축 후에 압축 된 패키지 이름을 지정할 필요가 없으며 소스 파일 이름 만 지정하면됩니다. 시도해 봅시다 :

[root @ localhost ~] # gzip install.log 

# 压缩 instal.log 파일 

[root @ localhost ~] # ls 

anaconda-ks.cfg install.log.gz install.log.syslog #zip 

파일 생성, 소스 파일도 사라짐 위로


[예 2] 소스 파일 압축을 유지하십시오. 

gzip 명령으로 파일을 압축하면 소스 파일이 사라지고 압축 파일이 생성됩니다. 현재 일부 사람들은 강박 장애를 앓고 있으며 저자에게 다음과 같이 묻습니다. 파일을 압축 할 때 소스 파일이 사라지지 않도록 할 수 있습니까? 그래, 괜찮아, 어색해

[root @ localhost ~] # gzip -c anaconda-ks.cfg> anaconda-ks.cfg.gz # 

-c 옵션을 사용하지만 압축 된 데이터를 화면으로 출력하지 말고 압축 된 파일로 리디렉션하십시오. 파일은 

[root @ localhost ~] # ls 

anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog 파일과 동시에 삭제되지 않습니다 

. 압축 파일과 소스 파일이 모두 존재 함을 볼 수 있습니다


[예 3] 디렉토리를 압축하십시오. 

gzip 명령으로 디렉토리를 압축 할 수 있다고 생각할 수도 있습니다. 시도해 봅시다 :

[root @ localhost ~] # mkdir test 

[root @ localhost ~] # touch test / test1 

[root @ localhost ~] # touch test / test2 

[root @ localhost ~] # touch test / test3 # 테스트 디렉토리 생성 및 내부 여러 개의 테스트 파일을 작성하십시오. 

[root @ localhost ~] # gzip -r test / #zip 

디렉토리, 오류 없음 

[root @ localhost ~] # ls 

anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz 설치 .log.syslog test 

# 그러나 테스트 결과 테스트 디렉토리가 여전히 존재하고 압축 파일이되지 않는 것으로 나타났습니다. 

[root @ localhost ~] # ls test / 

testl .gz test2.gz test3.gz # 

원래 gzip 명령은 디렉토리를 패키지화하지 않지만 디렉토리의 모든 서브 파일을 개별적으로 압축

Linux에서는 패키징과 압축이 별도로 처리됩니다. gzip 명령은 압축 만하고 패키지화 할 수 없으므로 패키지 된 디렉토리는 없지만 디렉토리의 파일 만 압축됩니다.