tee 명령을 사용하여 리눅스에서 표준 출력 내용을 화면에 출력하면서 파일에도 출력하기

linux Linux

Linux에서 사용되는 명령어 중 하나로, 파이프 라인으로 입력된 데이터를 동시에 여러 곳으로 출력하는 기능을 제공합니다. 즉, 화면에 출력하면서 동시에 데이터를 파일로도 저장할 수 있습니다.

기본 사용법

다음과 같이 명령 ls -la를 실행하여 화면으로 표준 출력 되는 데이터를 동시에 명령 tee를 사용하여 파일로 출력할 이름 filelist.txt을 지정합니다.

$ ls -la | tee filelist.txt

다음과 같이 파일 내용을 확인하면 화면으로 출력 된 내용과 동일함을 확인할 수 있습니다.

$ cat filelist.txt
total 8
drwxrwxrwt. 11 root     root     4096 Mar  1 10:29 .
dr-xr-xr-x. 17 root     root      244 Oct 27  2021 ..
drwxrwxrwt   2 root     root        6 Mar  1 09:59 .ICE-unix
... 중간 생략 ...

append 모드 사용법

tee 명령어의 -a 옵션을 사용하여 기존 파일에 append 모드로 데이터를 추가할 수도 있습니다. 다음은 명령 df를실행하여 화면으로 표준 출력 되는 데이터를 동시에 명령 tee를 사용하여 기존 filelist.txt 파일에 append 모드로 데이터를 추가합니다.

$ df | tee -a filelist.txt

다음과 같이 파일 내용을 확인하면 이전 출력에 추가된 내용이 출력 되었음을 확인할 수 있습니다.

$ cat filelist.txt
total 8
drwxrwxrwt. 11 root     root     4096 Mar  1 10:29 .
dr-xr-xr-x. 17 root     root      244 Oct 27  2021 ..
drwxrwxrwt   2 root     root        6 Mar  1 09:59 .ICE-unix
... 중간 생략 ...
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                3982868       0   3982868   0% /dev
tmpfs                   4000180      16   4000164   1% /dev/shm
tmpfs                   4000180   16988   3983192   1% /run
tmpfs                   4000180       0   4000180   0% /sys/fs/cgroup
/dev/mapper/rhel-root  46110724 3317488  42793236   8% /
... 중간 생략 ...

여러 파일에 동시에 출력하기

마지막으로, tee 명령어는 여러 개의 파일에 동시에 출력할 수도 있습니다. 다음은 ip addr show 명령 결과를 ipaddr1.txtipaddr2.txt 파일에 동시에 출력합니다.

$ ip addr show | tee ipaddr1.txt ipaddr2.txt

표준 에러,표준 출력을 하나의 파일로 출력하기

다음과 같이 2>&1을 추가하면, 표준 에러(standard error)를 표준 출력(standard output)으로 리다이렉트하여, 모든 결과를 하나의 파일에 저장할 수 있습니다.

$ command 2>&1 | tee filename.log

댓글

제목과 URL을 복사했습니다