하자 브레이크 >> /dev/null 2>&1
부품에 문 :
1 부 : >>
출력 리디렉션
프로그램 출력을 재지 정하고 파일 끝에 출력을 추가하는 데 사용됩니다. 더...
2 부 : /dev/null
특수 파일
이것은 의사 장치 특수 파일 입니다.
Command ls -l /dev/null
는이 파일에 대한 세부 정보를 제공합니다.
crw-rw-rw-. 1 root root 1, 3 Mar 20 18:37 /dev/null
관찰 했습니까 crw
? 이는 직렬 액세스를 제공하는 문자 특수 파일 유형 의 의사 장치 파일 임을 의미합니다 .
/dev/null
모든 입력을 받아들이고 버립니다. 출력을 생성하지 않습니다 (항상 파일 끝 표시를 읽을 때 표시 함). 참조 : Wikipedia
3 부 : 2>&1
파일 설명자
프로그램을 실행할 때마다 운영 체제는 항상 파일을 열 때마다 알듯이 3 개의 파일, 표준 입력, 표준 출력 및 표준 오류를 엽니 다. 커널 에서 운영 체제 는 음이 아닌 정수를 반환합니다. 파일 디스크립터 . 이들 파일의 파일 디스크립터는 각각 0, 1 및 2입니다.
그래서 2>&1
단순히 표준 출력 리디렉션 표준 오류는 말한다.
&
뒤에 오는 것은 파일 이름이 아니라 파일 설명 자라는 것을 의미합니다.
요컨대이 명령을 사용하면 실행하는 동안 프로그램이 소리 지르지 않도록 지시합니다.
사용의 중요성 2>&1
?
터미널에서 일부 오류가 발생한 경우에도 출력을 생성하지 않으려는 경우. 보다 명확하게 설명하기 위해 다음 예제를 살펴 보겠습니다.
$ ls -l > /dev/null
위 명령의 경우 터미널에 출력이 인쇄되지 않았지만이 명령으로 오류가 발생하면 어떻게됩니까?
$ ls -l file_doesnot_exists > /dev/null
ls: cannot access file_doesnot_exists: No such file or directory
출력을로 리디렉션하고 /dev/null
있지만 터미널에 인쇄됩니다. 오류 출력을로 리디렉션하지 않기 때문에 오류 출력 /dev/null
을 리디렉션하려면 다음을 추가해야합니다 2>&1
.
$ ls -l file_doesnot_exists > /dev/null 2>&1
>&- 2>&-
입니다.