tee 명령어는 화면에 출력되는 내용을 화면에도 출력하면서 파일로 저장하는데 사용된다.
위키에 tee 명령어를 잘 설명한 그림이 나와있다. 대부분 명령어 파이프라인에서 사용되어 중간 결과를 파일로 저장하는 역할을 한다.
tee [옵션] [파일명]
예를 들어
user@myhost:~$ ls -l
total 0
-rw-r--r-- 1 user user 0 Feb 23 23:51 a
-rw-r--r-- 1 user user 0 Feb 23 23:51 b
-rw-r--r-- 1 user user 0 Feb 23 23:51 c
-rw-r--r-- 1 user user 0 Feb 23 23:51 d
ls 명령어를 실행했을때, 디렉토리 엔트리들이 화면으로 출력된다.
명령어의 결과를 특정 파일로 저장하고 싶을 때,
user@myhost:~$ ls -l > out
user@myhost:~$ cat out
total 0
-rw-r--r-- 1 user user 0 Feb 23 23:51 a
-rw-r--r-- 1 user user 0 Feb 23 23:51 b
-rw-r--r-- 1 user user 0 Feb 23 23:51 c
-rw-r--r-- 1 user user 0 Feb 23 23:51 d
-rw-r--r-- 1 user user 0 Feb 23 23:52 out
이런 식으로 '>' 문자를 이용해서 특정 파일로 리다이렉트 시키면 된다. 하지만 ls -l 명령어의 결과는 화면에 출력되지 않는다. ls -l 명령의 출력 결과를 파싱해서 다른 명령의 인자로 주는 파이프라인을 구성하고 싶다면 중간에서 리다이렉트를 할 수 없다.
tee 명령어는 화면으로 출력되는 결과를 화면에도 출력하고 파일에도 저장하기위해 사용한다.
user@myhost:~$ ls -l | tee out
-rw-r--r-- 1 user user 0 Feb 23 23:51 a
-rw-r--r-- 1 user user 0 Feb 23 23:51 b
-rw-r--r-- 1 user user 0 Feb 23 23:51 c
-rw-r--r-- 1 user user 0 Feb 23 23:51 d
user@myhost:~$ ls -l > out
-rw-r--r-- 1 user user 0 Feb 23 23:51 a
-rw-r--r-- 1 user user 0 Feb 23 23:51 b
-rw-r--r-- 1 user user 0 Feb 23 23:51 c
-rw-r--r-- 1 user user 0 Feb 23 23:51 d
tee 명령을 사용해서 ls -l 명령의 결과 화면이 화면에도 출력되고 파일에도 저장된 것을 볼 수 있다.
옵션
옵션 | 긴버전 | 설명 |
-a | --apend | 입력 받은 파일에 Append 모드로 씀 |
-i | --ignore-interrupts | 인터럽트 시그널을 무시 (Ctrl + C 무시) |
관련글
댓글