리눅스에서 쉘 애플리케이션의 출력을 숨기는 방법?


답변:


68

보이지 않는 프로그램의 출력을 재 지정할 수 있습니다.

$ program > /dev/null

이것은 표준 출력을 리디렉션합니다-여전히 오류가 표시됩니다

$ program &> /dev/null

오류를 포함한 모든 출력을 리디렉션합니다.


첫 번째는 wget을 위해 작동하지 않았다
Jader Dias

그것이 wget이 stderr을 일부 출력에 사용하는 이유입니다. 두 번째는 작동해야합니다.
theotherreceive

2
또한 wget 출력을 로그 파일에 저장하여 다운로드 작동이 중지되면 그 이유를 알 수 있습니다. 어쨌든 스크립트에 있다면. 이것이 일회성 유형 인 경우라면 휴지통으로 이동하십시오
Matt Simmons

1
들어 wget당신이 사용할 수 -q있도록 옵션을 조용.
pkhamre

/ dev / tty에 직접 작성된 출력을 억제하는 방법은 무엇입니까?
d11wtq

30

명령 줄에는 3 개의 IO 장치가 있습니다.

 standard in - 0 
 standard out - 1 
 standard error - 2 

표준 출력 (기본 출력)을 파일로 리디렉션하고 파일을 덮어 쓰려면

 command > file.log 

file.log에 추가하려면 2> s를 사용하십시오.

 command >> file.log

표준 오류를 file.log로 리디렉션하려면

 command 2> file.log

그리고 추가

 command 2>> file.log

출력을 하나의 스트림으로 결합하여 한 곳으로 모두 보내기

 command > file.log 2>&1 

이것은 2 (stderr)를 1 (stdout)로 보내고 stdout을 file.log로 보냅니다.

stdin을 예상하는 명령으로 표준을 리디렉션 할 수도 있습니다.

 command << file.txt 

편집
자세한 내용은 Advanced Bash 스크립팅 안내서를 확인하십시오.


누군가 어떻게 command > file.log 2>&1작동 하는지 설명 할 수 있습니까 ?
코리 클라인

얼마나 낮은 레벨을 알고 싶습니까?
Matt Simmons

3
@ nomoreink : 실제로 2 개의 명령입니다. 하나는 > file이고 다른 하나는 2>&1입니다. 첫 번째는 표준을 파일로 리디렉션합니다. 두 번째는 두 번째 파일 설명자를 가져 와서 첫 번째 파일 설명 자로 리디렉션합니다. 을 사용하여 표준 출력을 표준 오류로 되돌리고 표준 오류 >&2로 리디렉션 한 다음을 사용하여 표준 오류를 파일로 리디렉션 할 수 있습니다 2> file.
허버트 카리오

12

숨는 장소 stdout

./command >/dev/null

숨기기 stdoutstderr

./command >/dev/null 2>&1

터미널 숨기기 stdoutstderr해제 (백그라운드에서 명령 실행)

./command >/dev/null 2>&1 &

3

출력을 숨기고 파일로 저장하지 않으려면 다음을 사용할 수 있습니다.

편집 :

$ 명령 &> / dev / null


이것은라는 파일 null로 출력 리디렉션
theotherreceive

그것은 널 파일을 생성했다
Jader Dias

1
/ dev / null을 의미하지 않았을까요?
Babu

1
그래, 바부 나는 $ 명령 &> / dev / null을 의미했다. 내 자신의 이익을 위해 너무 빨리 입력하는 것에 대해 사과드립니다.
Lucho

2

Mac OS X (10.6 "Snow Leopard") :

출력 / 오류 파일 디스크립터를 확인하여 프로그램에 알리지 않고 출력을 숨기려면 쉘에서 다음을 사용하십시오.

stty flusho; command ;stty -flusho

또는 터미널에서 입력을 숨기려면 다음과 같이하십시오.

stty  -echo; command ;stty  echo

자세한 내용은 stty (1) 매뉴얼 페이지를 참조하십시오

Linux의 경우 Ubunutu (10.04 "Lucid") 및 일부 "Debian / Arch"(아래 주석-tnx hendry)에 flusho설정 이 없습니다 (맨 페이지에서 다른 적절한 항목을 볼 수 없음). . echo설정은 어쨌든 우분투에서 작동합니다.


데비안 / 아치 아래의 기본 stty에는 이러한 옵션이 없습니다.
hendry

물론 OP의 OS도 아니었다 고 언급해야합니다. 내 게시물을 수정했습니다.
vike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.