'티'의 목적은 무엇입니까?


90

tee내가 본 모든 사용법 은 다음과 같습니다.

 do_something | tee -a logfile

또는:

do_something_else | tee logfile

가요 tee당신은 쉘 파이프 리디렉션과 같은 작업을 수행 할 수 있습니다 모르는 사람들을 위해 발명? 같은 :

do_something >> logfile

또는:

do_something_else > logfile

실제로 동일하며 입력하는 데 적은 키보드 적중이 필요합니다. 어떤 숨겨진 기능이 보이지 tee않습니까?


62
맨 페이지 "... and 표준 출력 및 파일에 쓰기" 의 첫 줄에서 어떻게 응답하지 않았 습니까? 답은 흥미롭지 만 파이프가 어떻게 유용한 지에 대해 광범위하게 이야기하면이 Q가 너무 넓어 보이는 방식이 강화 되어 폐쇄되었을 것입니다.
Xen2050

3
@ Xen2050 질문에 대한 답변이 너무 광범위하다고 비난 할 수 없습니다. 현재 최고 등급의 답변 과 마찬가지로 질문은 매우 구체적 입니다.
존 벤틀리

1
@ JonBentley 질문은 " 닫힌 대화 상자가 읽을 때 "적절한 대답을 식별하기에 충분한 세부 사항이있는 특정 문제 " 처럼 들리지 않습니다 . : 그것은이 같은 소리 않습니다 "질문이 책 전체 응답 할 수 있다면, 또는 여러 개의 유효 응답 (하지만를 결정하는 방법 - 어떤 경우 - 정확)이 없다, 그것은 아마도 우리의 형식에 너무 광범위합니다." (출처 : 도움말 센터 )
Xen2050

4
@ Xen2050 같은 질문을 읽고 있습니까? 그것은 나에게 매우 특이한 것 같습니다-티와 파이프의 차이점은 무엇입니까? 두 문장으로 적절하게 대답했습니다. 전체 책과는 거리가 멀다. 일부 답변 이 탄젠트를 시작하기로 선택한 사실 은 질문의 범위와 관련이 없습니다.
존 벤틀리

@ JonBentley : 우리는 같은 질문을 읽고 있습니까? R 무 종류-의 정렬의 의미 의 차이 무엇인가 - 상당히 잘 집중 질문 tee I / O 리디렉션을 ?   그것이 말하는 사실은 "쉘 파이프 리디렉션 같은 >과는 >>"자사의 유리한 점 아니고, 불분명 폐쇄에 대한 인수입니다. 그러나 실제로는 여러 가지 질문을합니다. " tee? 의 목적은 무엇입니까?", " tee쉘 파이프 리디렉션으로 동일한 작업을 수행 할 수있는 것을 모르는 사람들을 위해 개발 되었습니까?"및 "내가 보이지 않는 숨겨진 기능은 무엇입니까 tee?" 이러한 질문 중 적어도 두 가지가 너무 광범위합니다.
G-Man

답변:


242

여러분이 보지 않는 것은 즉 do_something | tee -a logfile로 출력을두고 logfile 하고 있는 동안, 표준 출력에 do_something >> logfile넣는다 에만 로그 파일에.

tee'T'교차와 마찬가지로 단일 입력, 다중 출력 시나리오를 생성하는 것이 목적입니다 .

편집하다

tee보다 겉보기 사용을 가능하게 하는 방법에 대한 의견이 있습니다 sudo. 이 점 옆에 : cat, dd또는 어쩌면 더 나은 buffer당신이 다중 출력을 필요로하지 않는 경우에, 더 나은 성능이 가능성을 제공합니다. 사용 tee하지는 "도 할 수있는"무엇을 위해, 그것은 설계 무엇을


37
다중 출력이 핵심입니다. tee여러 인수를 사용하여 한 번에 많은 파일에 쓸 수도 있습니다.
Kamil Maciorowski

20
나는 교차로가 아닌 티 파이프 피팅 이라고 부를 것 입니다.
user20574

7
예를 들어 cat대신에 간단한 방법으로 어떻게 사용 합니까? 리디렉션은 스도 이외의 셸에서 처리되기 때문에 작동하지 않습니다. 에 관해서는 , 작동하지만 , 특히 아래에서 큰 피해를 줄 수있는 강력한 도구 입니다. 에 관해서는 , 그것은 내가 (또는 맥 OS)를 손에 가지고있는 RedHat- 또는 우분투 기반 배포판의 하나에 기본적으로 설치되지 ...teeecho /var/work/core.%p | sudo tee /proc/sys/kernel/core_patternecho /var/work/core.%p | sudo cat > /proc/sys/kernel/core_patternddecho /var/work/core.%p | sudo dd of=/proc/sys/kernel/core_patternddsudobuffer
디지털 외상

3
@EugenRieck 나는 in : out이 1 차 함수가되는 것 사이의 1 : n 관계에 대해 당신의 의견을 얻습니다. 그러나이 상황에서 내장 cat이나 /bin/cat저에게 도움이 되지 않습니다 . 어디에서 왔는지 cat는 중요하지 않습니다. >최상위 (비-스도) 셸에서 여전히 처리됩니다. 이점 tee이상 cat이 상황은 출력 파일은 커맨드 라인 PARAM (그리고 리디렉션)로 전달 될 수 있다는 점이다. dd내가 여전히 tee이것을 선호하지만 확실히 실행 가능한 옵션입니다
Digital Trauma

3
@EugenRieck 어떤 쉘이 cattee내장 명령으로? 그리고 어떤 버전의 sudo쉘 내장을 실행할 수 있습니까?
wjandrea

118

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 이 모든 것에 맞습니다 :

  • 그것은 한 가지 일을합니다 : 여분의 입력 사본을 만듭니다.
  • 다른 프로그램과 함께 작동하므로 위의 예와 같이 다른 프로그램을 함께 사용할 수 있습니다.
  • 표준 입력에서 주어진 텍스트 스트림을 조작하여이를 수행합니다.

3
@Joe이 : sudo tee -a아마 최근 혁신 (내가 먼저 위키 특히에 물건을 설정 / 우분투 가이드에 그것을보고 /proc/sys우분투로 전환하기 때문에 나는로 전환 할 때, sudo우분투는 기본적으로 어떻게 구성되어 있는지 기반 시스템 () 대신 사용 su로모그래퍼 루트 비밀번호). 나는 teepredates 라고 생각 sudo하기 때문에 tee기존 의 이유가 아닙니다 . 필요하지 않습니다 . tee대화식으로 입력하는 것보다 짧습니다 sudo sh -c 'cat > output'.
Peter Cordes

1
bash와 같은 최신 셸을 사용하면와 같은 tee두 개의 파이프 라인을 공급할 수 있습니다 foo | tee >(pipe2) | pipe1. 또는 또 다른 재미있는 방법은 ffmpeg ... |& tee /dev/tty | sed 's/.*\r// > encode.log실제 로깅을위한 줄 바꿈 대신 캐리지 리턴으로 끝나는 "줄"을 제거하면서 tty에서 대화식으로 상태 줄 업데이트를 보는 것입니다. (즉, 상태 라인 업데이트를 필터링). 일반적으로 tee /dev/tty파이프 라인 의 어느 곳에 나 디버그 인쇄로 붙일 수 있습니다.
Peter Cordes

2
작업중 인 sudo의 제한이 적고 쉘의 해석에 대한 제한이 더 많습니다. sudo로 명령을 실행하면 해당 stdout이 쉘 프로그램으로 다시 전송되고>를 사용하여 추가 경로 재 지정이 쉘 권한으로 실행됩니다. 상승 된 권한으로 작성하려면 파이프 라인의 상승 된 부분을 작성해야합니다. 정확히 어떤 효과를 원하는지에 따라 여러 가지 방법으로이 작업을 수행 할 수 있습니다. 실제로 'sudo bash -c "command> outfile"'과 같은 것을 사용하려면 작업을 수행하십시오.
퍼킨스

정확히 @Perkins입니다. 쉘은를 분석하고 >sudo가 exec'd' 되기 전에 리디렉션을 설정 하므로 sudo가 결코 보지 못하는 것을 처리하지 않는 것은 확실히 sudo의 제한이 아닙니다. :) 나는 보통 이것을 sudo 자체를 설명하는 것이 아니라 설명 할 때 "sudo workflow"또는 이와 유사한 용어로 언급하려고한다.
dannysauer 2014 년

sudo tee -aIMHO는 티의 남용입니다. 다중 출력이 필요하지 않은 경우 sudo cat, sudo dd또는 (대부분의 경우 최상의 성능을 가진)을 사용하십시오 sudo buffer.
Eugen Rieck

70

실제로 동일하며 입력하는 데 적은 키보드 적중이 필요합니다.

전혀 같지 않습니다 ...

다음은 다소 동등한 것으로 보이지만 그렇지 않습니다.

$ echo "hi" > test.txt
$ echo "hi" | tee test.txt
hi

중요한 차이점은 전자는 이름 지정된 파일에만 데이터를 기록하고 후자는 hi터미널 ( stdout) 명명 된 파일에 다음과 같이 기록한 것입니다.

리디렉션 대 티


tee당신이 파일에 데이터를 기록 할 수 있도록 하고 유용한 일을하는 것을 허용 할 이후 파이프 라인에서 사용 - 파이프 라인 도중에에서 데이터를 유지하는 같은 :

grep '^look ' interesting_file.txt \
  | tee interesting_lines.txt \
  | sort

또는 전체 파이프 라인에 상승 된 권한을 부여하지 않고 상승 된 권한으로 파일에 쓸 수 있습니다 (여기서는 echo사용자로 실행되지만 tee파일에으로 기록 root).

echo 0 \
  | sudo tee /proc/sys/net/ipv4/ip_forward

을 사용하면 tee많은 파일 ( stdout )에 쓸 수 있습니다 .

echo "hi" \
  | tee a.txt b.txt

exec와 함께 사용 하여 tee모든 스크립트의 출력을 파일에 기록하는 동시에 관찰자 ( stdout)가 데이터를 볼 수 있도록 허용 할 수 있습니다.

exec > >( tee output.log )

2
exec > >(tee "$LOGFILE") 2>&1스크립트가 stdout 및 stderr을 stdout 및로 지정된 파일 모두에 출력 할 수있게하는 bash 스크립트에서 잊지 마십시오 $LOGFILE.
rexkogitans

@rexkogitans 2> & 1 cmd 배치 구문이 아닌가요?
dmb

@dmb : "stderr (= 2)를 stdout (= 1)과 같은 곳으로 보내기"에 대한 쉘 구문입니다.
psmears

@rexkogitans 정말 좋은 질문이었습니다. 10 년 동안 "Windoze"를 사용하지 않았다는 것을 정말로 알 수 없습니다. 2>&1Windows에서 출력을 txt 파일로 삭제 하는 데 사용 합니다.
dmb

1
@dmb 무례하게 들려서 죄송합니다. psmears의 의견에 관한 것입니다. 분명히 Windows는 여기서 유닉스 스타일을 채택했습니다.
rexkogitans

27

이것은 티입니다.
여기에 이미지 설명을 입력하십시오

T 자형 파이프 피팅. 입구와 두 개의 별도 콘센트가 있습니다.
즉, 하나의 파이프를 두 개의 파이프로 분할합니다. 도로의 포크처럼.

마찬가지로 표준 입력을 두 개의 개별 출력으로 리디렉션 할 수 tee있는 파이프 ( |)입니다.



예를 들어 말, 당신은 입력합니다 ls /.
다음과 같은 출력이 나타납니다.

Applications    Network     Users       bin        dev      net      private    tmp         var
Library         System      Volumes     cores      etc      home     opt        sbin        usr

출력을 텍스트 파일로 리디렉션하면 ls / > ls.txt결과 텍스트 파일에만 셸에 출력이 표시되지 않습니다.

출력을보고 동시에 텍스트 파일로 전달하고 싶습니까? 파이프에을
추가 tee하십시오 ( |) :ls / | tee ls.txt


두 가지를 비교하십시오.

ls /          >          ls.txt
ls /        | tee        ls.txt

4
우리가 알고있는 천 단어의 가치가있는 그림의 +1
Sergiy Kolodyazhnyy

정원 호스 파이프 T 피스를 골랐다면 Doug McIlroy의 원래 은유와 일치했을 것입니다.
JdeBP

@JdeBP 죄송합니다, 누가 누군지 모르겠습니다. 그는 유틸리티의 원작자입니까? 데이터 및 물리적 전류의 흐름은 종종 유압 시스템과 비교되지만 아마도 알고있을 것입니다. 어쨌든, 나는이 스타일을 아주 단순하게 유지하기 위해 선택했습니다. 나는 실제로 그것을 친숙하게하기 위해 그렇게하려고했지만 정원의 다양성은 액세서리 등을 부착하기위한 더 많은 Y 모양 및 / 또는 시각적으로 복잡한 부착물을 갖는 경향이 있습니다. 본질적으로 동일합니다.
목소리


18

아니요 . >>>연산자를 사용하여 실제로 파일로 리디렉션 할 수있는 몇 가지 예 중 하나를 언급했습니다 .

그러나 티는 훨씬 더 많은 일을 할 수 있습니다. 파이프로 파이프하기 때문에 다른 파이프로 파이프 할 수 있습니다.

wikipedia 페이지 에 좋은 예가 있습니다 .

find "4DOS" wikipedia.txt | tee 4DOS.txt | sort > 4DOSsorted.txt

기본적으로 Tee로 파이프 할 수 있으므로 Tee에서 다른 것으로 파이프 할 수 있습니다. 로그 파일을 작성하는 것만으로도 Tee가 필요하지 않습니다.


17

tee쓸모가 없습니다. 나는 그것을 항상 사용하고 그것이 존재하기 때문에 기쁘다. 분할하려는 파이프 라인이있는 경우 매우 유용한 도구입니다. 아주 간단한 예는 $dtar를 원하는 디렉토리 가 있고 편집증 (내와 같은)이고 데이터를 안정적으로 보유하기 위해 저장 매체를 신뢰하지 않기 때문에 디렉토리 를 해시하려는 것입니다. 당신은 할 수 먼저 디스크에 기록하고이를 해시하지만,이 해시되기 전에 아카이브가 손상되면 경우 그 실패 할 것입니다. 또한, 당신은 그것을 읽어야 할 것입니다. 그리고 수백 GB 크기의 파일을 많이 사용한다면, 다시 읽을 필요가 없다면 다시 읽고 싶지 않다는 것을 알게 될 것입니다.

그래서 내가하는 일은 단순히 이것입니다 :

tar -c "$d" | tee >(sha256sum) >(cat > "$d"".tar") > /dev/null

타르 볼을 생성하고 티로 파이프 한 다음 두 개의 서브 쉘로 파이프하고, 그 중 하나는 해시되고 다른 하나는 디스크에 기록됩니다.

큰 파일에 대해 여러 작업을 수행하려는 경우에도 좋습니다.

< file.tar.gz tee >(sha256sum) >(tar -xz) /other/storage/location/file.tar.gz > /dev/null

파일을 한 번 읽고 해시하여 (필요한지 여부를 확인할 수 있음) 추출한 후 다른 위치로 복사합니다. 이를 위해 세 번 읽을 필요가 없습니다.


3
Nitpick : tee서브 쉘을 작성하지 않습니다. 호출 쉘이 실행 sha5sum되고 cat출력을 파일 설명자에 전달합니다 tee. 또한 쓸모없는 사용 cat; 입력 리디렉션을 사용 tee하여에서 직접 읽을 수 있습니다 file.tar.gz.
chepner

@chepner 당신은 첫 번째 간섭에 대해서는 맞지만 두 번째 간섭에 대해서는 완전히 틀 렸습니다. 나는 파이프 라인을 순서대로 작성하는 것을 좋아하기 때문에 오른쪽의 입력을 나타내는 것은 가독성이 좋지 않으며 그렇게하는 것은 분명히 내 방법보다 객관적으로 열등하며 내 주관적인 선호는 아닙니다. cat사랑이다. cat삶이다.
UTF-8

6
< file.tar.gz tee >(sha256sum) ...리디렉션의 어휘 순서가 염려되는 경우 에도 쓸 수 있습니다 . 단일 파일을에 공급하기 위해 완전히 별도의 프로세스가 필요하지 않다는 사실은 변하지 않습니다 tee.
chepner

1
@ chepner 쿨 감사합니다! 오늘 무언가를 배웠습니다. :)
UTF-8

1
시작 비용 cat은 상대적으로 낮습니다. 100GiB의 추가 쓰기 / 읽기 시스템 호출 비용으로 인해 제안 된 대용량 파일의 예에서 추가 CPU 시간과 메모리 대역폭이 확실히 낭비됩니다. 메모리 대역폭은 모든 코어에서 공유 리소스이며, 해당 복사에서 L3 캐시의 추가 오염은 말할 것도 없습니다. Spectre + Meltdown 완화 기능을 사용하는 x86에서는 시스템 호출이 예전보다 비쌉니다. 해당 복사 과정에서 상당한 양의 추가 CPU 시간을 사용하고 있습니다. 또한 IMO >(cat > foo)보다 이해하기 쉽지 않습니다 foo.
Peter Cordes

12

@bertieb의 대답에 대한 Nitpick 이 예제는 sudo 명령의 고유 제한을 무시하는 데 사용되는 티를 보여줍니다. sudo는 표준 출력을 파일로 파이프 할 수 없습니다.

고유 한 제한은 없으며 명령 처리 방법에 대한 오해 만 있습니다.

예:

sudo echo 0 > /proc/sys/net/ipv4/ip_forward

현재 쉘은 명령 줄을 구문 분석합니다. 출력 리디렉션을 찾아서 수행합니다. 그런 다음 명령을 실행하고 sudo나머지 명령 줄은 실행 된 명령에 대한 인수로 제공합니다. 현재 셸에 루트 권한이 없으면 출력 리디렉션이 실패합니다.

echo 0 | sudo tee /proc/sys/net/ipv4/ip_forward

이것은 출력 리디렉션이 tee명령으로 지연되기 때문에 작동합니다 .이 시점에서을 통해 실행 되었기 때문에 루트 권한이 있습니다 sudo.

sudo bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"

리디렉션을 수행하는 셸에 루트 권한이 있기 때문에 작동합니다.


2
또한 sudo명령 이 필요할 수도 있지만 출력되는 파일에는 필요 하지 않으며 리디렉션이 제대로 작동합니다.sudo foo-needs-privilege > /tmp/this-output-file-doesnt
Dennis Williamson

10

다른 사람들이 언급했듯이 tee명령으로 출력을 파이핑하면 해당 출력을 파일과 stdout 모두에 씁니다.

tee실행하는 데 시간이 오래 걸리는 명령의 출력을 캡처하고 명령을 사용할 수 있을 때 출력을 육안으로 검사하려는 경우에 종종 사용 합니다. 이렇게하면 출력을 검사하기 전에 명령 실행이 끝날 때까지 기다릴 필요가 없습니다.

아직 언급되지 않은 것 (내가 그것을 놓치지 않은 경우)은 tee명령이 여러 파일에 한 번에 쓸 수도 있다는 것 입니다. 예를 들면 다음과 같습니다.

ls *.png | tee a.txt b.txt

*.png현재 디렉토리의 모든 파일 을 한 번 에 두 개의 다른 파일 ( a.txtb.txt)에 기록합니다.

사실, 당신은 한 번에 여러 파일에 텍스트를 입력 할 수 있습니다 tee다음과 같습니다 :

$ tee --append a.txt b.txt c.txt d.txt
These lines are appended to four different files,
and are also written to stdout.
CTRL-D

9

tee의 가장 일반적인 용도는 터미널에서 텍스트를 파일이나 파일로 보내는 동시에 텍스트를 보는 것입니다. 질문의 단어는 로그 파일에 텍스트 만 쓰는 것으로 가정합니다. 파일을 트리거하기 위해 파일 이름 또는 디렉토리 이름 목록을 작성하는 스크립트가 있으며 (다른 스크립트가 비동기 적으로 처리하도록) tee를 사용하여 동일한 내용을 stdout에 보냅니다. 모든 표준 출력은 로그로 보내집니다. 그래서 나는 원하는 곳에 텍스트를 가지고 있으며 하나의 'echo'문 에서이 작업을 수행 한 로그 항목 기록을 가지고 있습니다.

tee는 유닉스에서 여러 개의 동일한 파일을 만드는 가장 좋은 방법이기도합니다. 이처럼 빈 파일을 여러 개 만들 때 가끔 사용합니다 ...

:|tee file01 file02 file03

5
왜 안돼 touch? (일어났다는 것을 즉시 알 수 있음)
Attie

@Attie touch는 파일이 이미 존재하는 경우 파일을 자르지 않고 타임 스탬프 만 업데이트하고 내용을 그대로 둡니다. 그러나 tee잘립니다. 또한, 일 rm+ 것은 touch보다 다른 tee(하드 링크와 심볼릭 링크에 대해 생각)
마티 Nalis

그럼 왜 안돼 truncate -s 0? :-)
Attie

1

당신이 로그 파일에 명령의 출력을 작성하려면, 상상 표준 출력에 인쇄 할 수 있습니다. 동시에해야 할 때는 필요합니다 tee.

유스 케이스는 전체 빌드를 stdout (예 : Jenkins)에 작성하지만 중요한 것은 동시에 별도의 로그 파일 (요약 이메일 용)에 작성하는 빌드 스크립트를 보유하는 것입니다.

teeWindows에서 스크립트를 작성해야 할 때 실제로 누락되기 시작 합니다. 없습니다 tee그리고 그것은 정말 성가신입니다.


만드는 것이 쉽지 않습니까?
궤도에서 가벼움

명령에서 출력 스트림을 쉽게 분할 할 수 없으므로 batch / cmd를 사용할 수 없습니다.
domih

맞지만 3 라인 C ++ 프로그램처럼 ...
궤도에서 가벼운 레이스

1
Windows unxutils 배포에는 일부 배포와 달리 Windows 실행 환경을 오염시키지 않는 많은 Unix 명령 줄 도구가 있습니다. 가장 큰 제한은 "글로브"빙에 대한 것인데, 이는 Windows와 Unix / Linux에서 다르게 작동합니다. "티"는 사용 가능한 도구 중 하나입니다.
cmm

2
어리석지 말고 2018 년 tee입니다. Powershell을 사용하십시오 . Cmd는 심각한 스크립팅을위한 것이 아닙니다. 이것이 바로 VBS입니다. Powershell은 새로운 스크립팅 도구입니다. 물론 Cmd는 여전히 강력하지만 명령 줄 도구는 거의 없습니다.
Luaan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.