tail head cat sleep
QR code linking to this page

Man page  — GZIP

명칭

gzip, gunzip, zcat - 파일의 압축, 신장을 행한다

내용

서식

gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ]
zcat [ -fhLV ] [ name ... ]

해설

gzip (은)는, Lempel-Ziv 알고리즘 (LZ77)을 이용해 파일의 사이즈를 줄입니다. 만약 가능한 경우는, 파일명에 .gz, 의 확장자(extension)을 붙여 파일의 소유자나 액세스 시간과 갱신 시간을 보존합니다. (디폴트의 확장자(extension)는, VMS 에서는 -gz , MSDOS, OS/2 FAT, Windows NT FAT, Atari 에서는 z 됩니다. ) 만약, 파일명이 지정되지 않기도 하고, 파일명으로서 "-" 가 지정되면, 표준 입력을 압축해, 결과를 표준 출력에 출력합니다. gzip (은)는, 일반 파일만을 압축합니다. 특히, 기호 연결은 무시됩니다.

만약, 압축된 파일명이 파일 시스템에 있어 길면, gzip (은)는, 그 이름을 줄입니다. gzip (은)는, 파일명의 3 캐릭터 이상의 부분에게만 이름의 축소를 시도합니다. (부분이란, 닷에 의해 나눌 수 있었던 곳입니다. ) 만약, 파일명이 단보람 부분만으로 구성되어 있었을 때는, 가장 긴 부분을 축소합니다. 예를 들면, 파일명이 14 캐릭터 그렇다고 하는 제한이 있을 때, gzip.msdos.exe 는 gzi.msd.exe.gz 가 됩니다. 파일명의 캐릭터수가 제한을 가지지 않는 시스템에서는, 파일명의 축소는 행해지지 않습니다.

디폴트로 gzip (은)는, 오리지날의 파일명과 타임 스탬프가 압축된 파일중에 보존합니다. 이것들은, -N 옵션 첨부로 신장 되었을 때에, 사용됩니다. 이것은, 압축된 파일명이 축소되어 있거나, 파일 전송 후에 타임 스탬프가 보존되지 않았던 때에 편리합니다.

압축된 파일은, gzip -d 인가 gunzip 인가 zcat (을)를 이용해 오리지날에 되돌릴 수가 있습니다. 만약, 압축된 파일에 보존된 오리지날의 파일명이 파일 시스템에 맞지 않으면, 오리지날의 파일명으로부터 새로운 파일명이 만들어집니다.

gunzip (은)는, 명령행상의 파일의 리스트를 받아, .gz, -gz, . z, -z, _z, . Z 로 끝나고 있어, 올바른 magic number-로 시작되어 있는 파일을, 원래의 확장자(extension)를 없앤 압축되어 있지 않은 파일로 합니다. gunzip (은)는, .tar.gz (이)나 .tar.Z (을)를 생략 했다 .tgz (이)나 .taz 도 인식합니다. 압축할 때, gzip (은)는, .tar 파일의 파일명을 줄이는 대신에 .tgz (을)를 사용합니다.

gunzip (은)는, gzip, zip, compress, compress -H, pack 그리고 만들어진 파일을 신장 할 수 있습니다. 입력된 파일이 어느 방식에서 압축되고 있을까는 자동적으로 판별됩니다. 최초의 두 개의 방식을 사용하면(자), gunzip (은)는 32비트 CRC 를 체크합니다. pack 의 경우, gunzip (은)는 신장 된 크기를 체크합니다. 표준의 compress (은)는 일관성의 체크를 하도록(듯이) 설계되고 있지 않았습니다만, gunzip 하 . Z 파일이 올바르지 않은 것을 검출할 수 있는 일도 있습니다. 만약 . Z 파일을 신장 할 때에 에러를 만나는 경우에는, 표준의 uncompress 하지만 에러를 내지 않는다고 하는 이유로 . Z 파일은 올바르다 (이)라고 생각하지 말아 주세요. 이것은 일반적으로, 표준의 uncompress 하지만 입력을 체크하지 않고, 쓰레기인 출력을 해 버린다고 하는 일을 의미하고 있습니다. SCO compress -H 방식 (lzh 압축 기법)은 CRC 를 포함하지 않습니다만, 어느 정도의 일관성의 체크의 여지가 있습니다.

zip 그리고 만들어진 파일은, 'deflation'기법으로 압축된 하나의 멤버를 가질 때 마셔 gzip 로 신장 할 수 있습니다. 이 특징은 tar.zip 파일을 tar.gz 파일에 하는 것을 돕는 것만을 의도하고 있습니다. 복수의 멤버를 가진 zip 파일을 꺼낼 때에는 gunzip (은)는 아니고 unzip (을)를 사용해 주세요.

zcat (은)는, gunzip -c (와)과 동일합니다. (몇개의 시스템에서는, zcatcompress 에의 오리지날의 링크를 보존해 두기 위해서(때문에) gzcat (으)로서 인스톨 되고 있을지도 모릅니다. ) zcat (은)는, 명령행으로 지정된 파일이나 표준 입력으로부터의 입력을 신장 해, 표준 출력에 신장 한 데이터를 출력합니다. zcat (은)는, .gz 확장자(extension)여도 아니어도, magic number-가 올바르면 파일을 신장 합니다.

gzip (은)는, zip (이)나 PKZIP 로 사용되고 있는 Lempel-Ziv 알고리즘을 사용하고 있습니다. 압축율은 입력의 크기나 공통의 캐릭터 라인의 분포에 의합니다. 일반적으로, 원시 코드나 영어와 같은 텍스트는 60-70% 축소됩니다. 또, LZW ( compress 그리고 사용되고 있다), Huffman coding ( pack 그리고 사용되고 있다), 적응성 Huffman coding (compact) 보다 압축율이 좋습니다.

압축된 파일이 오리지날의 파일보다 불과에서도 크다고 해도, 압축은 항상 행해집니다. 최악의 신장은 gzip 파일 헤더의 수바이트, 32K 블록마다 5 바이트의 증가, 즉 신장율 0.015% 입니다. 사용하고 있는 디스크 블록의 실제의 수는 대부분의 경우 결코 증가하지 않는 것에 주의해 주세요. gzip (은)는, 압축이나 신장을 실시할 때 파일의 모드, 소유자, 타임 스탬프를 보존합니다.

옵션

-a --ascii
  줄 끝의 변환을 실시합니다. 이 옵션은 비 Unix 환경에서만 서포트되고 있습니다. 예를 들면 MSDOS에서는, 압축시에 CR LF 가 LF 에 변환되어 신장시에 LF 가 CR LF 에 변환됩니다.
-c --stdout --to-stdout
  오리지날 파일은 그대로, 결과를 표준 출력에 써냅니다. 만약, 복수의 파일이 입력되면, 결과는 일련의 독립한 것에 됩니다. 보다 좋게 압축을 하기 위해서는, 압축을 하기 전에 모든 입력 파일을 결합하면(자) 좋습니다.
-d --decompress --uncompress
  신장을 실시합니다.
-f --force
  파일이 복수의 링크를 가지고 있거나 벌써 파일은 존재해라고 해도, 또 압축된 데이터를 단말로부터 읽고 쓰기하려고 했을 때에도 압축이나 신장을 강행합니다. 만약 입력된 데이터가 gzip 그리고 인식 할 수 없는 형식이며 옵션 --stdout 가 지정되었을 경우, 변경되는 일 없이 입력된 데이터는 표준 출력에 카피됩니다: zcatcat (으)로서 행동합니다. 만약 -f 하지만 지정되지 않고 배경으로 실행되어 있지 않은 경우에는, gzip (은)는 파일을 덧쓰기해도 좋은가 확인을 요구합니다.
-h --help
  헬프를 표시해, 종료합니다.
-l --list
  압축된 파일 각각 이하의 필드를 표시한다.

compressed size: 압축된 파일의 크기
uncompressed size: 신장 된 파일의 크기
ratio: 압축율 (모르면 0.0%)
uncompressed_name: 신장 된 파일의 이름

uncompressed size 가 -1 라면, 파일은 gzip 형식은 아니고 . Z 파일등입니다. 그러한 파일의 신장 된 파일의 크기를 알려면 , 이하와 같이 해 주세요.

zcat file.Z | wc -c

--verbose 옵션을 모두 지정하면(자), 이하의 필드가 추가됩니다.

method: 압축 기법
crc: 신장 된 파일의 32-bit CRC
date & time: 신장 된 파일의 타임 스탬프

압축 기법은 현재 deflate, compress, lzh (SCO compress -H), pack 를 서포트하고 있습니다. crc 가 ffffffff 라면, gzip 형식이 아닙니다.

--name 옵션을 모두 지정하면(자), 표시하는 신장 된 파일의 이름, 일자, 시간 (은)는 압축된 파일에 보존된 것이 됩니다.

--verbose 옵션을 모두 지정하면(자), 모든 파일의 사이즈의 토탈이나 압축율이 표시됩니다 (파일 사이즈를 모르는 것이 있는 경우를 제외합니다). --quiet 옵션을 모두 지정하면(자), 타이틀이나 토탈 라인은 표시되지 않습니다.

-L --license
  gzip 라이센스를 표시해, 종료합니다.
-n --no-name
  압축할 때, 디폴트로 오리지날의 파일명이나 타임 스탬프를 보존하지 않습니다. (만약 파일명을 줄일 수 있다면, 오리지날의 파일명은 항상 보존됩니다. ) 신장 할 때, 만약 오리지날의 파일명이 존재해도 복원하지 않습니다 (압축된 파일의 이름으로부터 gzip 사픽스만을 없앱니다), 만약 오리지날의 타임 스탬프가 존재해도 복원하지 않습니다 (압축된 파일로부터 카피합니다). 이 옵션은 신장 할 때의 디폴트입니다.
-N --name
  압축할 때, 항상 오리지날의 파일명과 타임 스탬프를 보존합니다. 이것은 디폴트입니다. 신장 할 때, 만약 오리지날의 파일명이나 타임 스탬프가 존재하면 복원합니다. 이것은 파일명의 길이에 제한이 있다 시스템이나 타임 스탬프가 파일 전송 후에 없어졌을 때에 도움이 됩니다.
-q --quiet
  모든 경고를 억제합니다.
-r --recursive
  디렉토리 구조를 재귀적으로 진행됩니다. 만약, 명령행으로 지정되었다 파일명의 디렉토리가 있으면, gzip (은)는 그 디렉토리로 나아가, 그 디렉토리에서 발견한 모든 파일을 압축합니다 ( gunzip 의 경우는 그것들을 신장 합니다).
-S .suf --suffix .suf
  .gz 대신에 .suf 라고 하는 사픽스를 사용합니다. 어떠한 사픽스 그렇지만 사용할 수가 있습니다만, 파일을 다른 시스템에 전송 할 때의 혼란을 피한다 위해(때문에),. z 나 .gz 이외의 사픽스는 피해야 합니다. 사픽스에 눌을 지정하면(자), 이하와 같이 gunzip 는 사픽스에 관계없이 모든 파일을 신장 하려고 합니다.

gunzip -S "" * (MSDOS 에서는 *. *)

gzip 의 이전의 버젼에서는 . z 사픽스를 사용하고 있었습니다. 이것은, pack(1) (와)과의 충돌을 피하기 위해서(때문에) 변경되었습니다.

-t --test
  테스트. 압축된 파일이 완전한 것이나 체크합니다.
-v --verbose
  장황 메세지를 표시합니다. 압축/신장 되는 각 파일명과 압축율을 표시합니다.
-V --version
  버젼 넘버나 옵션을 표시한 후, 종료합니다.
-# --fast --best
  압축의 속도를 수치 # 그리고 조절합니다. 예를 들면, -1 (이)나 --fast (은)는 압축 속도를 가장 빠르게 해 (압축율은 최저), -9 (이)나 --best (은)는 압축 속도를 가장 늦게 합니다 (압축율은 최고). 디폴트의 압축 레벨은 -6 (즉 속도보다 높은 압축율을 중시하고 있다).

진행된 사용법

복수의 압축된 파일은 결합할 수가 있습니다. 이 경우, gunzip (은)는 동시에 모든 멤버를 꺼냅니다. 예를 들면,

gzip -c file1 > foo.gz
gzip -c file2 >> foo.gz 그 후,
gunzip -c foo

cat file1 file2

(와)과 같은 일입니다. .gz 파일의 하나의 멤버가 망가졌을 경우, 다른 멤버는 복원할 수 있습니다 (망가진 멤버를 없애면). 그러나, 동시에 모든 멤버를 압축할 때,

gzip -c file1 file2 > foo.gz

(와)과 실행하는 것보다, 이하와 같이 실행하면(자)보다 압축율을 올릴 수가 있습니다.

cat file1 file2 | gzip > foo.gz

만약 결합된 파일을 보다 압축율을 올리기 위해서(때문에) 재압축하고 싶으면, 이하와 같이 실행해 주세요.

gzip -cd old.gz | gzip > new.gz

만약 압축된 파일이 몇개의 멤버를 가진다면, --list 옵션으로 보고되는 신장 후의 크기나 CRC 는 마지막 멤버만을 가리키고 있습니다. 모든 멤버의 신장 후의 크기가 필요하면, 이하와 같이 실행해 주세요.

gzip -cd file.gz | wc -c

복수의 멤버를 가져, 나중에 있는 멤버를 빼낼 수가 있는 것 같은 단일의 archive파일을 만들고 싶다면, tar 나 zip 와 같은 어카이버(archiver)-를 사용해 주세요. GNU tar 는 gzip 를 호출한다 -z 옵션을 서포트하고 있습니다. gzip 는 tar 의 대체는 아니고 tar 의 포착으로서 설계되고 있습니다.

환경 변수

환경 변수 GZIP 에는, gzip 기동시에 명령행에 부가하는 옵션을 지정할 수 있습니다. 이러한 옵션이 우선 해석되어 명령행의 파라미터(parameter) 에 의해 덧쓰기됩니다. 예를 들면,
sh 에서는: GZIP="-8v --name"; export GZIP
csh 에서는: setenv GZIP "-8v --name"
MSDOS 에서는: set GZIP=-8v --name

Vax/VMS 에서는, 환경 변수의 이름은 GZIP_OPT 입니다. 이것은 프로그램의 시동을 위한 심볼 세트와의 충돌을 피하기 (위해)때문입니다.

관련 항목

znew(1), zcmp(1) [영어], zmore(1), zforce(1), gzexe(1), compress(1)

진단

종료 코드는 통상 0 입니다; 에러가 일어났을 경우는 1 을 돌려줍니다. 경고가 나왔을 때는 2 를 돌려줍니다.

Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] 무효인 옵션이 명령행으로 지정되어 있습니다. file: not in gzip format gunzip (으)로 지정된 파일은 압축되고 있지 않습니다. file: Corrupt input. Use zcat to recover some data. 압축된 파일이 망가져 있습니다. 망가져 있는 부분까지의 데이터를 이하와 같이 해 복원할 수 있습니다. zcat file > recover file: compressed with xx bits, can only handle yy bits file 하지만, 이 머신의 신장 프로그램보다 많은 bit (을)를 처리할 수 있는 프로그램에 의해 (LZW 를 사용해) 압축되고 있습니다. 파일을 gzip 로 재압축해 주세요. 압축율이 좋아져 메모리 사용량도 적게 됩니다. file: already has .gz suffix -- no change 파일이 이미 압축되고 있을지도 모릅니다. 파일을 rename 해 한번 더 시험해 주세요. file already exists; do you wish to overwrite (y or n)? 만약 출력 파일을 옮겨놓고 싶으면,"y" 라고 대답해 주세요. 그렇지 않으면 "n" 라고 대답해 주세요. gunzip: corrupt input SIGSEGV 위반이 검출되었습니다. 이것은 통상, 입력된 파일이 망가져 있는 일을 의미하고 있습니다. xx.x% 압축으로 보존된 입력의 비율 ( -v (와)과 -l 에게만 관계 있습니다). -- not a regular file or directory: ignored 입력 파일이 통상 파일이나 디렉토리가 아닐 때 (기호 연결, 소켓, FIFO, 디바이스 파일), 그것들은 변경되지 않습니다. -- has xx other links: unchanged 입력 파일이 링크를 갖고 있는; 변경되지 않은 채입니다. 보다 자세한 일은 ln(1) (을)를 참조해 주세요. 복수의 링크를 가지는 파일을 압축하기 위해서는 -f 플래그를 사용해 주세요.

주의

압축된 데이터를 테이프에 쓸 때, 일반적으로 블록 경계까지 0 으로 묻을 필요가 있습니다. 데이터를 읽어, 전블록을 gunzip 그리고 신장 할 때, gunzip (은)는 압축된 데이터의 뒤에 쓰레기가 있으면(자) 검출해, 디폴트에서는 경고를 출력합니다. 이 경고를 억제하려면 --quiet 옵션을 사용하지 않으면 안됩니다. 이 옵션은, 이하와 같이 GZIP 환경 변수에 세트 할 수 있습니다.
sh 에서는: GZIP="-q" tar -xfz --block-compress /dev/rst0
csh 에서는: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0

상기의 예에서는, gzip 는 GNU tar 의 -z 옵션에 의해 암묵적으로 불려 가고 있습니다. 테이프로 압축된 데이터를 읽고 쓰기하는데 같은 블록 사이즈 (tar 의 -b 옵션)(이)가 사용되어 있든가 확인해 주세요. (이 예에서는 tar 는 GNU Version 를 사용하고 있으면(자) 가정하고 있습니다. )

버그

사이즈가 2GB 를 넘는 경우의 옵션 --list 에 의한 출력은, 올바르지 않은 것입니다. 압축파일이 시크 할 수 없는 매체상에 존재하는 경우, 옵션 --list 에 의한 출력은, 사이즈를 -1 로 해 헤더내의 CRC 를 0 xffffffff로 합니다.

보기 드물게, 옵션 --best 를 부가해 압축했을 경우보다, 디폴트의 압축 때 (-6)가 압축율이 좋은 일이 있습니다. 파일에 높은 장황성이 있으면, compress (분)편이 gzip 보다 압축율이 좋습니다.


GZIP (1)

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

I think Unix and snowflakes are the only two classes of objects in the universe in which no two instances ever match exactly.
— Noel Chiappa