Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력
head는 파일이나 표준 입력의 앞부분만 출력하는 명령입니다. 기본값은 처음 10줄이며, 파일 형식과 헤더를 빠르게 확인하거나 파이프라인의 결과 수를 제한할 때 사용합니다.
이 글에서는 head의 기본 문법과 주요 옵션, 실제 사용 예제, 관련 명령과의 차이, 사용할 때 주의할 점을 설명합니다.
head 명령어란?
줄 수는 -n, 바이트 수는 -c로 지정합니다. 여러 파일을 주면 파일명 헤더를 붙여 각 결과를 구분합니다. GNU 구현에서는 음수 개수로 끝부분을 제외한 나머지를 출력하는 확장도 제공합니다.
기본 문법
head [옵션] [파일 ...]
옵션과 세부 동작은 구현과 버전에 따라 달라질 수 있습니다. 현재 시스템에서는 head --help와 man head으로 설치된 명령의 설명을 확인하세요.
head 기본 사용법
처음 10줄 보기
옵션을 생략하면 각 입력의 첫 10줄을 출력합니다.
head access.log
원하는 줄 수 출력하기
-n 뒤에 줄 수를 지정합니다.
head -n 25 access.log
처음 몇 바이트 출력하기
문자 수가 아니라 바이트 수이므로 다중 바이트 문자 경계가 잘릴 수 있습니다.
head -c 64 sample.bin
앞부분만 읽은 결과
head -n 2는 입력에서 처음 두 행만 출력합니다. 원본을 바꾸지 않고 작은 샘플을 확인할 때 유용합니다.
printf 'one\ntwo\nthree\n' | head -n 2
예시 출력:
one two
파이프 앞 명령이 많은 데이터를 생산한다면 head가 일찍 종료하면서 앞 명령에 끊긴 파이프 오류가 발생할 수 있습니다. 자동화에서는 전체 파이프라인의 종료 상태를 확인하세요.
주요 옵션
| 옵션 | 설명 |
|---|---|
-n NUM |
처음 NUM줄을 출력합니다. |
-c NUM |
처음 NUM바이트를 출력합니다. |
-q |
여러 파일을 처리할 때 파일명 헤더를 숨깁니다. |
-v |
파일이 하나여도 파일명 헤더를 표시합니다. |
-n -NUM |
GNU 구현에서 마지막 NUM줄을 제외하고 출력합니다. |
-c -NUM |
GNU 구현에서 마지막 NUM바이트를 제외하고 출력합니다. |
실전 활용 예제
CSV 헤더와 샘플 확인하기
전체 파일을 열지 않고 첫 행과 일부 데이터를 빠르게 봅니다.
head -n 6 sales.csv
여러 로그 앞부분 비교하기
-v로 파일명을 확실히 표시해 결과 출처를 구분합니다.
head -v -n 5 app.log worker.log
명령 결과 일부만 보기
생산 명령이 head 종료 후 SIGPIPE를 받을 수 있으므로 엄격한 파이프라인에서는 종료 상태를 해석할 때 주의합니다.
find /var/log -type f | head -n 20
head와 관련 명령 비교
| 명령 | 주요 역할 | 적합한 상황 |
|---|---|---|
head |
앞부분 출력 | 헤더와 샘플 확인 |
tail |
끝부분 출력·추적 | 최근 로그 확인 |
sed |
범위 선택과 편집 | 복잡한 줄 범위 처리 |
less |
대화형 전체 탐색 | 긴 파일 검색 |
사용할 때 주의할 점
-c는 문자 수가 아닙니다
UTF-8 문자의 중간 바이트에서 끊으면 깨진 문자가 표시될 수 있습니다.
정렬 전 head는 원래 순서를 따릅니다
가장 큰 값이나 최신 항목을 원한다면 먼저 적절히 정렬해야 합니다.
파이프 종료 상태를 확인합니다
set -o pipefail 환경에서는 앞 명령의 SIGPIPE가 실패처럼 나타날 수 있습니다.
FAQ
기본으로 몇 줄을 출력하나요?
일반적으로 처음 10줄입니다.
첫 줄만 보려면 어떻게 하나요?
head -n 1 파일을 사용합니다.
마지막 줄은 어떤 명령으로 보나요?
tail을 사용합니다.
처음 1KB만 출력할 수 있나요?
GNU head에서는 head -c 1K 파일처럼 크기 접미사를 사용할 수 있습니다. 구현별 지원 여부를 확인하세요.









