Linux / 명령어 / tee - 파이프 출력을 화면과 파일에 동시 저장

tee는 표준 입력을 표준 출력으로 보내면서 같은 내용을 하나 이상의 파일에도 기록합니다. 파이프 중간 결과를 보면서 저장할 때 유용합니다.

tee 명령어란?

기본적으로 지정한 파일을 덮어씁니다. 기존 기록 뒤에 추가하려면 -a를 사용합니다. 일반 > 리디렉션과 달리 파이프의 이후 명령에도 입력을 계속 전달할 수 있습니다.

기본 문법

명령 | tee [옵션] 파일 [파일 ...]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man tee으로 현재 시스템의 설명을 확인하세요.

사용 예제

화면과 파일에 동시에

출력을 보면서 파일에 저장합니다.

date | tee run-time.txt

기존 로그 뒤에 추가

-a는 파일 끝에 덧붙입니다.

date | tee -a run-time.txt

중간 결과를 저장하며 계속 처리

정렬 결과를 저장한 뒤 이어서 앞부분만 확인합니다.

sort names.txt | tee names.sorted | head

화면과 파일에 동시에 남는 결과

파이프라인의 중간 결과를 화면에 보면서 파일에도 저장하려면 tee를 씁니다.

printf 'status=ok\n' | tee result.txt

화면에는 다음이 출력되고 result.txt에도 같은 한 줄이 기록됩니다.

status=ok

기본 동작은 대상 파일 덮어쓰기입니다. 기존 내용을 유지하고 뒤에 추가하려면 tee -a result.txt를 사용하세요. 관리자 소유 파일에 쓰려면 sudo 명령 > 파일보다 명령 | sudo tee 파일이 필요한 경우가 있습니다. 리디렉션은 현재 셸 권한으로 실행되기 때문입니다.

주요 옵션과 형식

옵션·형식 설명
-a 기존 파일을 덮지 않고 추가합니다.
-i 인터럽트 신호를 무시합니다.
-p GNU 구현에서 파이프 쓰기 오류 처리 방식을 조정합니다.

사용할 때 주의할 점

sudo 명령 > /보호된/파일은 리디렉션을 수행하는 현재 셸에 권한이 없어 실패할 수 있습니다. 이때 명령 | sudo tee 파일을 사용하지만, 입력 내용이 화면에도 표시되므로 비밀값에는 주의하세요. 오류 출력은 기본적으로 tee에 전달되지 않습니다.

자주 묻는 질문

tee가 표준 오류도 저장하나요?

기본적으로 표준 입력으로 들어온 내용만 저장합니다. 오류까지 포함하려면 상황에 맞는 셸 리디렉션을 명시하세요.

공식 문서

옵션의 정확한 동작과 구현별 차이는 tee 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux 강좌 / 셸의 명령 실행 방식 - ;, &&, ||, 별칭과 환경 변수

Linux 강좌 / 셸의 명령 실행 방식 - ;, &&, ||, 별칭과 환경 변수

Bash가 명령을 해석하고 종료 상태에 따라 다음 명령을 실행하는 방식을 알아봅니다. ;, &&, ||와 별칭·환경 변수의 차이를 안전한 예제로 설명합니다.

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

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

Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

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

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

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

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

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux bzip2 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사

Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사

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

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

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

Linux / 명령어 / wc - 줄·단어·문자 수 계산

Linux / 명령어 / wc - 줄·단어·문자 수 계산

Linux wc 명령어로 줄·단어·바이트·문자 수를 확인하는 방법을 설명합니다. 개행 기준의 줄 수, -c와 -m 차이, 여러 파일 합계와 안전한 파이프 활용 예제를 정리합니다.

Linux / 명령어 / fdisk - 디스크 파티션 표 확인과 편집

Linux / 명령어 / fdisk - 디스크 파티션 표 확인과 편집

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