2014-09-16 2 views
0

출력을 여러 대상 (예 : 표준 출력, 파일, 소켓 등)으로 리디렉션 할 수 있습니까?리눅스가 여러 대상으로 리디렉션

말하자면, 여기 시스템이 있고 네트워크에 연결되어 있습니다. 그것이 실패 할 때, 그 사람은 ssh를 통해 그것을 감독 할 수 있어야한다. 그렇지 않으면 GUI 클라이언트는 에러 정보를 받아야한다. 그렇지 않으면 최악의 경우, 우리는 여전히 로그에서 무엇인가를 찾을 수있다.

또는 그 이상의 타겟. 원자력은 보장 될 필요가 있거나 그렇지 않을 수도 있습니다.

bash 및/또는 C에서이 작업을 수행하는 방법은 무엇입니까?

+0

'tee' 명령 –

답변

0

당신처럼, 너무 파일의 수에 어떤 명령에 tee로 리디렉션 할 수 있습니다 :

seq 50 | tee copy1 copy2 >((echo Original linecount: $(grep -c ''))>&2) | grep '9' 

무엇 인쇄 :

9 
19 
29 
39 
49 
Original linecount: 50 #printed to stderr 

또는

seq 50 | tee copy1 copy2 >((echo Original linecount: $(grep -c ''))>&2) | grep '9' | wc -l 

무엇가를 인쇄 처음 50 개의 숫자에서 숫자 9를 포함하는 숫자의 계산, 원본의 두 사본을 만드는 동안 시퀀스 ...

Original linecount: 50 #stderr 
     5 
1

"tee"명령을 찾고 있다고 생각합니다.

+0

여러 대상이 있습니까? 나는 출력을 소켓에 전달하고, 잠재적으로 데이터를 수신 할 수있는 모든 것을 지명하고 싶다. – HuStmpHrrr

+0

여러 출력에 티밍 할 수 있습니다 (예 : [commandA] | 티 [commandB] | 티 [commandC] | ... | 티 [commandD] | 명령 – emsworth

+0

으로 인해 성능이 너무 많이 손상됩니까? 그것은 나에게 프로세스를 포크로 유지하는 것처럼 보입니다. – HuStmpHrrr

관련 문제