Zcat - Linux 명령 - Unix 명령

이름

gzip, gunzip, zcat - 파일 압축 또는 확장

개요

gzip [ -acdfhlLnNrtvV19 ] [ -S 접미사 ] [ 이름 ... ]
gunzip [ -acfhlLnNrtvV ] [ -S 접미사 ] [ 이름 ... ]
zcat [ -fhLV ] [ 이름 ... ]

기술

Gzip 은 Lempel-Ziv 코딩 (LZ77)을 사용하여 명명 된 파일의 크기를 줄입니다. 가능할 때마다 동일한 소유권 모드, 액세스 및 수정 시간을 유지하면서 각 파일은 .gz 확장자로 대체됩니다. (기본 확장자는 VMS의 경우 -gz , MSDOS의 경우 z , OS / 2 FAT, Windows NT FAT 및 Atari입니다.) 파일이 지정되지 않았거나 파일 이름이 "-"인 경우 표준 입력이 표준 산출. 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로 끝나고 원래의 확장자가없는 압축되지 않은 파일로 올바른 매직 번호로 시작하는 각 파일을 바꿉니다 . gunzip 은 특수 확장자 .tgz.taz.tar.gz.tar.Z의 약자로 인식합니다. 압축 할 때 gzip 은 확장자가 .tar 인 파일을 자르는 대신 필요한 경우 .tgz 확장자를 사용합니다.

gunzip 은 현재 gzip, zip, compress, compress -H 또는 pack으로 작성된 파일의 압축을 풀 수 있습니다 . 입력 형식의 감지는 자동입니다. 처음 두 포맷을 사용할 때 gunzip 은 32 비트 CRC를 검사합니다. pack의 경우 gunzip 은 압축되지 않은 길이를 검사합니다. 표준 압축 형식은 일관성 검사를 허용하도록 설계되지 않았습니다. 그러나 gunzip 은 가끔 악성 .Z 파일을 감지 할 수 있습니다. .Z 파일의 압축을 때 오류가 발생하면 표준 압축 해제 가 불평하지 않기 때문에 .Z 파일이 정확하다고 가정하지 마십시오. 이는 일반적으로 표준 압축 해제 가 입력을 검사하지 않고 행복하게 가비지 출력을 생성 함을 의미합니다. SCO compress -H 형식 (lzh 압축 방법)은 CRC를 포함하지 않지만 일부 일관성 검사도 허용합니다.

zip에 의해 생성 된 파일은 'deflation'메소드로 압축 된 단일 멤버가있는 경우에만 gzip에 의해 압축 해제 될 수 있습니다. 이 기능은 tar.zip 파일을 tar.gz 형식으로 변환하는 것을 돕기위한 것입니다. 여러 회원이있는 zip 파일을 추출하려면 gunzip 대신 unzip을 사용 하십시오.

zcatgunzip -c와 동일합니다 . (일부 시스템에서는 zcatgzcat 으로 설치하여 압축 할 원래 링크를 유지할 수 있습니다 .) zcat 은 명령 행의 파일 목록이나 표준 입력을 압축 해제하고 압축되지 않은 데이터를 표준 출력에 기록합니다. zcat 은 접미사가 .gz 이든 아니든 올바른 매직 번호를 가진 파일을 압축 해제합니다.

Gzipzip 및 PKZIP에서 사용되는 Lempel-Ziv 알고리즘을 사용합니다. 얻은 압축 량은 입력의 크기와 공통 부분 문자열의 분포에 따라 달라집니다. 일반적으로 소스 코드 나 영어와 같은 텍스트는 60-70 %까지 줄어 듭니다. 압축은 일반적으로 압축에서 사용되는 LZW, 에서 사용되는 허프만 코딩 또는 압축 된 허프만 코딩으로 달성되는 것보다 훨씬 낫습니다.

압축 된 파일이 원본보다 약간 큰 경우에도 압축은 항상 수행됩니다. 최악의 경우의 확장은 gzip 파일 헤더의 경우 몇 바이트, 32KB 블록마다 5 바이트 또는 큰 파일의 경우 0.015 %의 확장 비율입니다. 실제 사용 된 디스크 블록 수는 거의 증가하지 않습니다. gzip 은 압축하거나 압축을 풀 때 파일의 모드, 소유권 및 타임 스탬프를 보존합니다.

옵션

-a --ascii

ASCII 텍스트 모드 : 로컬 규칙을 사용하여 행의 끝을 변환합니다. 이 옵션은 Unix가 아닌 일부 시스템에서만 지원됩니다. MSDOS의 경우 압축시 CR LF가 LF로 변환되고 압축 해제시 LF는 CR LF로 변환됩니다.

-c --stdout --to-stdout

출력을 표준 출력에 기록하십시오. 원본 파일을 변경하지 마십시오. 여러 입력 파일이있는 경우 출력은 독립적으로 압축 된 구성원의 순서로 구성됩니다. 더 나은 압축을 얻으려면 압축하기 전에 모든 입력 파일을 연결하십시오.

-d --decompress --uncompress

감압하십시오.

-f --force

파일에 여러 링크가 있거나 해당 파일이 이미 있거나 압축 된 데이터가 터미널에서 읽히거나 터미널에 쓰여지더라도 압축 또는 압축 해제를 강제합니다. 입력 데이터가 gzip에 의해 인식되는 형식이 아니고 --stdout 옵션이 주어지면 표준 출력으로 변경하지 않고 입력 데이터를 복사하십시오. let zcatcat으로 작동합니다 . -f 를 지정하지 않고 백그라운드에서 실행하지 않을 경우 gzip 은 기존 파일을 덮어 쓸지 여부를 확인하는 프롬프트를 표시합니다.

-h --help

도움말 화면을 표시하고 종료하십시오.

-l --list

각 압축 파일에 대해 다음 필드를 나열하십시오.


compressed size : 압축 파일의 크기
uncompressed size : 압축되지 않은 파일의 크기
비율 : 압축률 (알 수없는 경우 0.0 %)
uncompressed_name : 압축되지 않은 파일의 이름

압축되지 않은 크기는 압축 된 .Z 파일과 같이 gzip 형식이 아닌 파일의 경우 -1로 지정됩니다. 그러한 파일의 압축되지 않은 크기를 얻으려면 다음을 사용할 수 있습니다.


zcat file.Z | wc -c

--verbose 옵션과 함께 다음 필드가 표시됩니다.


방법 : 압축 방법
crc : 비 압축 데이터의 32 비트 CRC
날짜 및 시간 : 압축되지 않은 파일의 타임 스탬프

현재 지원되는 압축 방법은 deflate, compress, lzh (SCO compress -H) 및 pack입니다. crc는 gzip 형식이 아닌 파일에 대해 ffffffff로 제공됩니다.

--name을 사용하면 압축되지 않은 이름, 날짜 및 시간은 압축 파일에 저장된 파일입니다.

--verbose를 사용하면 일부 크기를 알 수없는 경우를 제외하고는 모든 파일의 크기 합계와 압축률도 표시됩니다. --quiet를 사용하면 제목과 총계가 표시되지 않습니다.

-L --license

gzip 라이센스를 표시하고 종료하십시오.

-n --no-name

압축 할 때 원본 파일 이름과 타임 스탬프는 기본적으로 저장하지 마십시오. (원래 이름은 잘려야 할 경우 항상 저장됩니다.) 압축을 풀 때 원본 파일 이름이 있으면 복원하지 말고 (압축 된 파일 이름에서 gzip 접미어 만 제거) 원래의 시간 스탬프가 있으면 복원하지 마십시오 (압축 파일에서 복사). 이 옵션은 압축을 풀 때 기본값입니다.

-N - 이름

압축 할 때 원본 파일 이름과 타임 스탬프를 항상 저장하십시오. 이것이 기본값입니다. 압축을 풀 때 원본 파일 이름과 타임 스탬프가 있으면 복원하십시오. 이 옵션은 파일 이름 길이에 제한이 있거나 파일 전송 후 시간 소인이 손실 된 시스템에서 유용합니다.

-q --quiet

모든 경고를 무시하십시오.

-r - 재귀 적

디렉터리 구조를 재귀 적으로 이동합니다. 명령 줄에 지정된 파일 이름 중 하나라도 디렉토리 인 경우 gzip 은 디렉토리로 내려 가서 찾은 모든 파일을 압축합니다 (또는 gunzip 의 경우 압축을 푸십시오 ).

-S .suf - 접미사 .suf

.gz 대신 .suf 접미어를 사용하십시오. 다른 시스템에 파일을 전송할 때 혼동을 피하기 위해 접미사를 지정할 수는 있지만 .z 및 .gz 이외의 접미사는 피해야합니다. null 접미사는 다음과 같이 gunzip이 접미사에 관계없이 모든 주어진 파일에서 압축 해제를 시도하도록합니다.


gunzip -S ""* (*. * for MSDOS)

이전 버전의 gzip은 .z 접미사를 사용했습니다. 이것은 pack (1)과의 충돌을 피하기 위해 변경되었습니다.

-t - 테스트

테스트. 압축 파일의 무결성을 확인하십시오.

-v - 자세한 정보 표시

말 수가 많은. 압축 또는 압축 해제 된 각 파일의 이름 및 백분율 감소를 표시하십시오.

-V - 버전

번역. 버전 번호 및 컴파일 옵션을 표시 한 다음 종료하십시오.

- # --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 파일의 한 구성원이 손상된 경우 다른 구성원을 계속 복구 할 수 있습니다 (손상된 구성원이 제거 된 경우). 그러나 한 번에 모든 구성원을 압축하면 더 나은 압축을 얻을 수 있습니다.


cat file1 file2 | gzip> foo.gz

~보다 나은 압축


gzip -c file1 file2> foo.gz

더 나은 압축을 위해 연결된 파일을 다시 압축하려면 다음과 같이하십시오.


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

압축 된 파일 이 여러 구성원으로 구성된 경우 --list 옵션으로보고 된 압축되지 않은 크기와 CRC는 마지막 구성원에만 적용됩니다. 모든 구성원에게 압축되지 않은 크기가 필요한 경우 다음을 사용할 수 있습니다.


gzip -cd file.gz | wc -c

멤버를 나중에 독립적으로 추출 할 수 있도록 여러 멤버가 포함 된 단일 아카이브 파일을 만들려면 tar 또는 zip과 같은 아카이버를 사용하십시오. GNU tar는 gzip을 투명하게 호출하는 -z 옵션을 지원합니다. gzip은 타르 (tar )를 보완하는 것으로 설계된 것이지 대체물이 아닙니다.

관련 항목

압축 (1)

gzip 파일 형식은 P. Deutsch, GZIP 파일 형식 사양 버전 4.3, , 인터넷 RFC 1952 (1996 년 5 월)에 지정되어 있습니다. zip 디플레이션 형식은 P. Deutsch, DEFLATE 압축 데이터 형식 사양 버전 1.3, , 인터넷 RFC 1951 (1996 년 5 월)에 지정되어 있습니다.

중요 : man 명령 ( % man )을 사용하여 특정 컴퓨터에서 명령이 어떻게 사용되는지보십시오.