답변:
> 연산자는 일반적으로 출력을 파일로 리디렉션하지만 장치 일 수도 있습니다. >>를 사용하여 추가 할 수도 있습니다.
숫자를 지정하지 않으면 표준 출력 스트림이 가정되지만 오류를 리디렉션 할 수도 있습니다
> file
stdout을 파일로
1> file
리디렉션 stdout을 파일로
2> file
리디렉션 stderr를 파일로
&> file
리디렉션 stdout 및 stderr을 파일로 리디렉션
/dev/null
null 장치는 원하는 입력을 가져 와서 버립니다. 출력을 억제하는 데 사용할 수 있습니다.
2>&1
오래된 구문이 있다고 생각하지 않으므로 &>
몇 년 전에는 작동하지 않았지만 둘 다 동일합니다.
즉, stderr
(fd 2)를 블랙홀로 리디렉션합니다 (명령의 출력을 버림).
리디렉션에 대한 더 일반적인 사용 사례 :
command > /dev/null 2>&1 &
command
백그라운드에서 실행 하고 삭제 stdout
하고stderr
command >> /path/to/log 2>&1 &
command
stdout 및 stderr을 실행 하여 로그 파일에 추가하십시오.
Bash 4+에서는 더 짧지 만 읽기 쉬운 형식이 작동합니다.
command &>> /path/to/log
> /dev/null 2>&1
대신 사용해야 할 이유가 &> /dev/null
있습니까?
&>
은 Bash 4의 새로운 기능입니다. 전자는 전통적인 방식 일뿐입니다. 기억하기 쉽습니다.
fn>target
, fn
파일 번호는 어디에 있습니까 (일반적으로 0-2, 일부 프로그램은 더 많은 숫자를 정의합니다) target
일반적으로 파일 이름이지만 여기에는 다른 파일 번호 가 붙어 있습니다 &
. "파일 이름 대신 파일 번호를 원합니다"에 대한 구문.
grep -i 'abc'컨텐츠는 오류를 포함하여 콘솔에 표시되는 출력을 생성합니다.
지정 2>/dev/null
하면 오류가 콘솔에 출력되지 않도록 오류가 필터링됩니다.
더 자세하게 : 2는 오류 설명자가 오류가 기록되는 위치를 나타냅니다. 기본적으로 콘솔에 인쇄됩니다.
\>
이 경우 지정된 위치로 출력을 리디렉션합니다. /dev/null
/dev/null
무시하려는 출력을 보내는 표준 Linux 장치입니다.
> /dev/null 2>&1
과 의 차이점이&> /dev/null