HOME > linux > cmds

Linux - tee 명령어로 터미널 출력을 파일로 저장하기

JSFollow10 Mar 2019

명령어 tee는 화면에 출력된 내용을 파일로 저장하는데 사용됩니다.

예를들어, 아래 명령어는 boot로 시작하는 파일들을 찾아줍니다.

$ find -name "boot*"
./boot.img
./booting_eng.txt
./bootimg_tools
./bootimg_tools/boot_info

위 명령어에 | tee output.txt를 붙여주면 화면에 출력된 내용이 output.txt라는 파일로 저장이 됩니다.

$ find -name "boot*" | tee output.txt
./boot.img
./booting_eng.txt
./bootimg_tools
./bootimg_tools/boot_info

$ cat output.txt
./boot.img
./booting_eng.txt
./bootimg_tools
./bootimg_tools/boot_info

명령어

tee는 아래와 같은 옵션과 함께 사용될 수 있습니다.

tee [ -a ] [ -i ] [ File ... ]
  • File ...: 출력을 저장하고 싶은 파일들을 입력해줍니다. 여러 파일에 저장하고 싶으면 2개 이상의 파일을 쓰시면 됩니다.
  • -a: 파일이 존재하는 경우 파일을 지우지 않고 내용을 추가합니다.
  • -i: 인터럽트(Ctrl+c)를 무시합니다.

-a옵션을 주면 기존 파일의 내용을 지우지 않고 추가합니다.

$ find -name "boot*" | tee -a output.txt

$ cat output.txt
./boot.img
./booting_eng.txt
./bootimg_tools
./bootimg_tools/boot_info
./boot.img
./booting_eng.txt
./bootimg_tools
./bootimg_tools/boot_info

ping으로 출력되는 내용을 로그로 저장하고 싶은 경우 tee를 사용할 수도 있습니다.

$ ping codechacha.com | tee log.txt
PING codechacha.com (216.239.38.21) 56(84) bytes of data.
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=1 ttl=46 time=69.2 ms
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=2 ttl=46 time=68.8 ms
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=3 ttl=46 time=69.1 ms

$ cat log.txt
PING codechacha.com (216.239.38.21) 56(84) bytes of data.
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=1 ttl=46 time=69.2 ms
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=2 ttl=46 time=68.8 ms
64 bytes from any-in-2615.1e100.net (216.239.38.21): icmp_seq=3 ttl=46 time=69.1 ms

참고