Linux / 명령어 / cat - 파일 내용 출력과 결합

cat은 파일 내용을 표준 출력으로 보내고 여러 파일을 순서대로 연결하는 명령입니다. 짧은 텍스트를 빠르게 확인하거나 파일을 결합할 때 유용하지만, 긴 파일을 읽을 때는 less가 더 편리합니다.

이 글에서는 cat의 기본 문법과 주요 옵션, 실제 사용 예제, 관련 명령과의 차이, 사용할 때 주의할 점을 설명합니다.

cat 명령어란?

이름은 concatenate에서 왔습니다. 인수 없이 실행하면 표준 입력을 읽으며, 파일을 여러 개 지정하면 지정한 순서대로 내용을 출력합니다. 원본 파일은 바꾸지 않지만 셸 리디렉션의 대상을 잘못 지정하면 파일이 비워질 수 있습니다.

기본 문법

cat [옵션] [파일 ...]

옵션과 세부 동작은 구현과 버전에 따라 달라질 수 있습니다. 현재 시스템에서는 cat --help와 man cat으로 설치된 명령의 설명을 확인하세요.

cat 기본 사용법

파일 내용 출력하기

짧은 설정 파일이나 로그 조각을 화면에서 확인합니다.

cat /etc/os-release

여러 파일 이어서 출력하기

파일 사이에 구분 문자를 자동으로 넣지 않으므로 필요한 경우 별도로 추가합니다.

cat part-01.txt part-02.txt

새 파일로 결합하기

출력 리디렉션으로 결과를 저장합니다. 입력 파일과 출력 파일을 같은 경로로 지정하면 셸이 먼저 출력 파일을 비우므로 사용하지 마세요.

cat chapter-1.txt chapter-2.txt > book.txt

표준 출력 결과 확인하기

cat은 입력 파일의 내용을 순서대로 그대로 출력합니다. 다음은 샘플 두 행을 만든 뒤 확인하는 예제입니다.

printf 'one\ntwo\n' > sample.txt
cat sample.txt

예시 출력:

one
two

cat은 긴 파일을 페이지별로 멈추지 않으므로 결과가 화면을 빠르게 지나갈 수 있습니다. 내용을 탐색하려면 less를 사용하세요.

주요 옵션

옵션 설명
-n 모든 출력 줄에 줄 번호를 붙입니다.
-b 비어 있지 않은 줄에만 번호를 붙이며 -n보다 우선합니다.
-s 연속된 빈 줄을 한 줄로 줄입니다.
-E 각 줄 끝에 $를 표시합니다.
-T 탭 문자를 ^I로 표시합니다.
-A 탭·줄 끝 등 보이지 않는 문자를 함께 표시합니다.

실전 활용 예제

줄 번호와 함께 검토하기

오류 메시지의 줄 번호와 설정 파일을 대조할 때 유용합니다.

cat -n app.conf

보이지 않는 문자 확인하기

줄 끝의 공백이나 탭, CRLF 문제를 조사할 때 표시 옵션을 사용합니다.

cat -A script.sh

표준 입력을 파일로 저장하기

입력이 끝나면 Ctrl+D로 EOF를 전달합니다. 편집 작업에는 전용 편집기가 더 안전합니다.

cat > memo.txt

cat와 관련 명령 비교

명령 주요 역할 적합한 상황
cat 출력·결합 짧은 파일과 파이프 입력
less 대화형 페이지 보기 긴 파일 탐색
tac 줄 순서 역전 최신 줄을 먼저 확인
paste 행 단위 병합 열 형태로 파일 결합

사용할 때 주의할 점

큰 파일은 less로 확인합니다

대용량 파일을 터미널에 모두 출력하면 화면과 터미널 버퍼를 불필요하게 소모합니다.

자기 자신으로 리디렉션하지 않습니다

cat file > file은 cat이 읽기 전에 셸이 파일을 비울 수 있습니다.

바이너리 파일 출력을 피합니다

제어 바이트가 터미널 표시를 흐트러뜨릴 수 있으므로 file, hexdump 또는 xxd를 사용합니다.

FAQ

cat은 파일 내용을 수정하나요?

아닙니다. 기본 동작은 읽어서 표준 출력으로 보내는 것입니다. 다만 리디렉션 대상은 셸이 생성하거나 덮어쓸 수 있습니다.

여러 파일 사이에 빈 줄이 자동으로 들어가나요?

아닙니다. 각 파일의 바이트를 그대로 이어 출력합니다.

줄 번호는 어떻게 표시하나요?

모든 줄은 -n, 내용이 있는 줄만은 -b를 사용합니다.

긴 로그도 cat으로 보면 되나요?

가능하지만 탐색과 검색이 필요하면 less가 적합합니다.

관련 글과 공식 문서

같은 카테고리의 다른 글
Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux fsck 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux whereis 명령어로 프로그램의 바이너리, 소스와 매뉴얼 페이지 위치를 찾는 방법을 설명합니다. 검색 범위 제한과 which·find와의 차이도 정리합니다.

Linux / 명령어 / sync - 버퍼에 남은 쓰기 데이터 저장 요청

Linux / 명령어 / sync - 버퍼에 남은 쓰기 데이터 저장 요청

Linux sync 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux 강좌 / 배포판 선택하기

Linux 강좌 / 배포판 선택하기

리눅스 입문과 서버 실습에 Ubuntu와 Rocky Linux 중 무엇을 선택하면 좋을까요? 학습 목표, 패키지 관리 방식과 지원 정책을 기준으로 두 배포판을 비교합니다.

Linux / 명령어 / info - GNU 문서 확인

Linux / 명령어 / info - GNU 문서 확인

info 명령어로 GNU 설명서를 탐색하는 방법을 설명합니다. 노드와 메뉴 이동, 본문·색인 검색, 특정 문서 위치 지정, 텍스트 출력과 문서가 없을 때의 해결 방법을 정리합니다.

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

실습 폴더에서 파일과 디렉터리를 만들고 복사·이동·삭제해 봅니다. 덮어쓰기와 삭제 전에 경로와 결과를 확인하는 습관도 익힙니다.

Linux / 명령어 / nice - 새 명령의 CPU 우선순위 조정

Linux / 명령어 / nice - 새 명령의 CPU 우선순위 조정

Linux nice 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux 강좌 / 프로세스 확인·일시정지·종료하기

Linux 강좌 / 프로세스 확인·일시정지·종료하기

ps, top, pgrep으로 프로세스의 상태와 자원 사용량을 확인합니다. 실습 프로세스에 STOP, CONT, TERM을 보내고 셸 작업과 서비스의 차이를 익힙니다.

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux pkill 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

Linux ip 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.