ioerror

zcat 사용법 및 옵션 - 압축 파일의 내용을 해제 없이 표준 출력으로 조회 본문

OS

zcat 사용법 및 옵션 - 압축 파일의 내용을 해제 없이 표준 출력으로 조회

반응형

zcat 사용법 및 옵션 - 압축 파일의 내용을 해제 없이 표준 출력으로 조회

zcat - compressed file concatenate and print

압축 파일의 내용을 해제 없이 표준 출력으로 조회

zcat 명령어는 gzip 또는 compress 유틸리티로 압축된 파일(.gz, .Z 등)의 압축을 디스크에 직접 해제하지 않고, 메모리상에서 즉시 풀어 표준 출력(stdout)으로 내용을 표시하는 유닉스 및 리눅스 CLI 유틸리티이다. 대용량 시스템 로그 파일이나 압축된 데이터베이스 덤프 파일을 디스크 용량 소비 없이 실시간으로 읽거나 다른 명령어와 파이프라인으로 연결할 때 주로 활용된다.

1. 명령어 용도

  • 디스크 공간을 사용하지 않고 .gz 압축 로그 파일의 내용을 터미널에서 즉시 조회하는 경우
  • 압축 해제 과정 없이 grep, awk, sed 등의 텍스트 처리 도구와 파이프로 연결하여 특정 키워드를 검색하는 경우
  • 여러 개의 압축된 분할 파일을 하나의 연속된 스트림으로 결합하여 처리하는 경우

2. 명령어 서식

Bash
 
zcat [OPTION]... [FILE]...

3. 명령어 옵션

  • 주요 옵션 소개 테이블
옵션 설명 사용가능 OS 및 쉘
-f, --force 압축되지 않은 일반 파일이나 여러 링크가 연결된 파일도 강제로 읽어 출력하다. [Linux/GNU]
-h, --help 명령어 사용법 및 도움말 정보를 출력하고 종료하다. [Linux/GNU]
-L, --license 소프트웨어 라이선스 정보를 출력하고 종료하다. [Linux/GNU]
-M 파일 출력 시 페이지 번호를 함께 표시하다. [macOS/BSD]
-q, --quiet 압축 파일 관련 경고 메시지 출력을 억제하다. [Linux/GNU]
-r, --recursive 디렉터리 내부를 재귀적으로 탐색하여 포함된 모든 압축 파일을 출력하다. [Linux/GNU]
-S .sfx, --suffix .sfx 지정한 압축 확장자(.sfx)를 가진 파일만 인식하여 처리하다. [Linux/GNU]
-t, --test 압축 파일의 무결성을 검사하다 (내용은 출력되지 않다). [Linux/GNU]
-v, --verbose 압축 파일명, 압축률 등의 상세 정보 및 결과를 함께 출력하다. [Linux/GNU]
-V, --version 명령어의 버전 정보를 출력하고 종료하다. [Linux/GNU]
  • 명령어 옵션 사용시 결과 예시
Bash
 
# 1. 압축 파일 내용 기본 조회
zcat access.log.gz
# output:
# 192.168.1.10 - - [09/Aug/2026:10:00:01 +0900] "GET /index.html HTTP/1.1" 200 4523
# 192.168.1.11 - - [09/Aug/2026:10:00:05 +0900] "POST /login HTTP/1.1" 200 1204

# 2. 파이프를 활용한 특정 에러 키워드 필터링
zcat system.log.gz | grep "ERROR"
# output:
# [2026-08-09 14:20:11] ERROR: Database connection failed.

# 3. 압축 파일 무결성 검사 (-t)
zcat -t backup.tar.gz
# output: (오류가 없으면 아무런 출력 없이 종료 상태 코드 0 반환)

# 4. 일반 파일과 압축 파일이 섞여 있을 때 강제 출력 (-f) [Linux/GNU]
zcat -f normal.txt compressed.log.gz
# output:
# normal.txt의 텍스트 내용이 먼저 출력된 후 compressed.log.gz의 압축 해제 내용이 이어서 출력되다.

4. 명령어 특이사항(유의사항)

  • macOS/BSD와 Linux의 구현 차이: Linux(GNU coreutils/gzip)의 zcat은 gzip -dc와 완전히 동일하게 동작하여 .gz 파일을 기본 처리하다. 반면 macOS/BSD 계열의 기본 zcat은 전통적인 compress(.Z) 형식 파일만 처리하도록 제한되어 있어 .gz 파일 실행 시 오류가 발생할 수 있다. macOS 환경에서 .gz 파일을 처리할 때는 gzcat 명령어를 사용하거나 zcat < file.gz 형태로 리다이렉션을 사용하는 것이 권장된다.
  • 메모리 및 CPU 사용량: 압축 파일 해제 작업이 파일 시스템(디스크)이 아닌 RAM 메모리 상에서 실시간으로 수행되므로 대용량 압축 파일을 한 번에 출력할 경우 순간적으로 CPU 및 메모리 사용량이 증가할 수 있다.
  • zgrep, zless와의 비교: 단순 출력이 아닌 파일 내 검색은 zcat file.gz | grep pattern 대신 zgrep pattern file.gz를 사용하는 것이 효율적이며, 긴 페이지 탐색은 zless 명령어를 사용하는 것이 유용하다.

관련 명령어들

  • gzip: 파일 압축 및 해제를 수행하는 표준 유틸리티이다.
  • gunzip: gzip으로 압축된 파일의 압축을 해제하다.
  • zgrep: 압축 파일을 해제하지 않고 내부 텍스트 패턴을 직접 검색하다.
  • zless: 압축 파일의 내용을 less 페이저 인터페이스로 나누어 조회하다.
  • bzcat: bzip2(.bz2) 형식으로 압축된 파일의 내용을 표준 출력하다.
  • xzcat: xz(.xz) 형식으로 압축된 파일의 내용을 표준 출력하다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

반응형
Comments