답변:
> 연산자는 일반적으로 출력을 파일로 리디렉션하지만 장치 일 수도 있습니다. >>를 사용하여 추가 할 수도 있습니다.
숫자를 지정하지 않으면 표준 출력 스트림이 가정되지만 오류를 리디렉션 할 수도 있습니다
> filestdout을 파일로
1> file리디렉션 stdout을 파일로
2> file리디렉션 stderr를 파일로
&> file리디렉션 stdout 및 stderr을 파일로 리디렉션
/dev/nullnull 장치는 원하는 입력을 가져 와서 버립니다. 출력을 억제하는 데 사용할 수 있습니다.
2>&1오래된 구문이 있다고 생각하지 않으므로 &>몇 년 전에는 작동하지 않았지만 둘 다 동일합니다.
즉, stderr(fd 2)를 블랙홀로 리디렉션합니다 (명령의 출력을 버림).
리디렉션에 대한 더 일반적인 사용 사례 :
command > /dev/null 2>&1 &
command백그라운드에서 실행 하고 삭제 stdout하고stderr
command >> /path/to/log 2>&1 &
commandstdout 및 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