Tee
쓸모 없다
어쨌든 당신은 그것을 알고 있었습니까? 그렇지 않다면 계속 읽으십시오! 또는 그것이 어떻게 작동하는지 알고 있지만 그것이 왜 존재 하는지 확실하지 않다면 , 유닉스 철학과 어떻게 조화를 이루는 지 끝까지 건너 뛰십시오.
무엇 이다 의 목적 tee
?
가장 간단한 방법으로 표준 입력의 데이터를 가져 와서 표준 출력과 하나 이상의 파일에 씁니다. 하나의 입력을 두 개의 출력 (및 두 방향)으로 나누는 방식으로 배관 티 피스 에 비유되었습니다 .
예
첫 번째 예를 보자.
do_something | tee -a logfile
그러면 출력을 가져 와서 do_something
로그 파일에 추가하는 동시에 사용자에게 표시합니다. 실제로 Wikipedia 페이지tee
의 두 번째 예는 다음과 같습니다.
명령의 출력을보고 기존 파일에 추가하려면 다음을 수행하십시오.
lint program.c | tee -a program.lint
그러면 컴퓨터에 lint program.c 명령의 표준 출력이 표시되며 동시에 program.lint 파일의 끝에 사본이 추가됩니다. program.lint 파일이 없으면 작성됩니다.
바로 다음 예제는 다른 용도가 : 권한의 단계적 확대를 :
권한 에스컬레이션을 허용하려면 다음을 수행하십시오.
cat ~/.ssh/id_rsa.pub | ssh admin@server "sudo tee -a /root/.ssh/authorized_keys2 > /dev/null"
이 예는 sudo
명령에 내재 된 한계를 우회하는 데 사용되는 티를 보여줍니다 . sudo
표준 출력을 파일로 파이프 할 수 없습니다. 표준 출력 스트림을로 덤프함으로써 /dev/null
콘솔에서 미러링 된 출력도 억제합니다. 위의 명령은 사용자의 공개 키를 서버의 키 인증 목록에 설치하여 ssh를 통해 서버에 대한 현재 사용자 루트 액세스 권한을 제공합니다.
또는 한 명령의 출력을 가져 와서 어딘가에 쓰고 다른 명령의 입력으로 사용하고 싶습니까?
tee 명령을 사용하여 명령 출력을 파일에 저장하고 입력과 동일한 출력을 다른 명령으로 리디렉션 할 수 있습니다.
다음 명령은 crontab 항목의 백업을 수행하고 crontab 항목을 sed 명령의 입력으로 전달하여 대체를 수행합니다. 대체 후 새 cron 작업으로 추가됩니다.
$ crontab -l | tee crontab-backup.txt | sed 's/old/new/' | crontab –
( Tee 명령 사용 예에 대한 신용 )
Tee
유닉스 철학과 함께 작동합니다.
한 가지 일을 잘 수행하는 프로그램을 작성하십시오. 함께 일할 프로그램을 작성하십시오. 범용 인터페이스이므로 텍스트 스트림을 처리하는 프로그램을 작성하십시오.
( 유닉스 철학의 기본에 대한 학점 )
tee
이 모든 것에 맞습니다 :
- 그것은 한 가지 일을합니다 : 여분의 입력 사본을 만듭니다.
- 다른 프로그램과 함께 작동하므로 위의 예와 같이 다른 프로그램을 함께 사용할 수 있습니다.
- 표준 입력에서 주어진 텍스트 스트림을 조작하여이를 수행합니다.