반응형
tee
Developer(s) | AT&T Bell Laboratories, Mike Parker, Richard Stallman, David MacKenzie, Microware, Jim Hall, JP Software, Microsoft |
Initial release | June 1974; 47 years ago |
Operating system | Unix, Unix-like, Plan 9, Inferno, OS-9, FreeDOS, Windows, ReactOS, IBM i |
Platform | Cross-platform |
Type | Command |
tee 는 표준 입력(standard input)에서 읽어서 표준 출력(standard output) 과 파일에 쓰는 명령어입니다.
쉽게 말하면 화면에 출력되는것들을 파일에 같이 작성할 수 있다로 보면 될것 같습니다 (기본적으로..)
사용법
- 표준출력을 화면출력·파일기록
명령어 | tee 파일명
echo "hello world" | tee OUTFILE
- 표준출력을 화면출력·파일기록 (단, 기존내용 유지하고 내용 추가)
명령어 | tee -a 파일명
echo "hello world" | tee -a OUTFILE
- 출력+오류를 화면출력·파일기록 (오류메시지 포함하여 파일로 저장)
명령어 2>&1 | tee 파일명
echo "hello world" 2>&1 | tee OUTFILE
- 표준출력 X 파일기록 only save
표준 출력에는 쓰지 않으려면 tee 의 맨 마지막에 널 디바이스인 /dev/null 을 연결해 주면 표준 출력 장치(예: 터미널)에는 표시 되지 않습니다.
명령어 | tee -a 파일명 /dev/null
echo "hello world" | tee -a OUTFILE /dev/null
tee를 쓰는 이유
shell 에서 출력을 redirection 할 경우 sudo를 사용해도 일반 사용자로 전환 되므로 root 권한으로 파일에 쓰거나 내용 추가가 필요한 경우 제대로 동작하지 않습니다.
그래서 아래와 같이 root 소유인 파일에 sudo echo 를 실행하면 "permission denied" 에러가 나고 내용 추가에 실패합니다.
sudo echo "validate_password.policy=LOW" >> /etc/mysql/mysql.conf.d/mysqld.cnf
이럴 경우 echo 를 받아서 sudo tee 를 하면 정상적으로 동작하며 tee 는 shell script 에서 root 권한으로 특정 파일을 쓰거나 append 할때 주로 활용합니다.
echo "validate_password.policy=LOW" | sudo tee -a /etc/mysql/mysql.conf.d/mysqld.cnf
참조 사이트
[제타위키] 리눅스 tee, 화면과 파일에 동시 출력하기
https://www.lesstif.com/lpt/linux-tee-89556049.html (linux tee 명령어 사용법)
반응형
'OS > linux&ubuntu' 카테고리의 다른 글
[sh] shellscript에서 db 명령어 실행 작성하기 (0) | 2022.05.27 |
---|---|
[ERROR] -bash: fork: retry: Resource temporarily unavailable (0) | 2022.03.31 |
[LINUX] 자주 사용하는 yum 명령어 (0) | 2021.11.17 |
[ubuntu] 우분투 apt 자주 쓰이는 명령어 정리 (0) | 2021.11.17 |
[netstat] 네트워크 연결 확인 명령어 [ss/iproute2] (ubuntu/linux)(ubuntu 18.04.) (0) | 2021.08.26 |