다음 명령을 실행 ll /dev/null
하고 다음 출력을 얻습니다.
crw-rw-rw- 1 root root 1, 3 Feb 19 10:20 /dev/null
나는 d
그것이 디렉토리를 의미한다는 것을 알고 있습니다. 누군가 c
특수 플래그가 무엇을 의미하는지 설명해 줄 수 있나요?
답변1
이는 문자 장치 파일을 기반으로 합니다. Linux에서 하드웨어 및 기타 장치에는 두 가지 특성이 있습니다.
문자 장치(c) 마우스, 스피커 등과 같이 데이터를 문자(바이트 또는 비트라고도 함)로 전송하는 장치입니다.
블록디바이스(b) USB, 하드디스크 등 데이터 블록 형태로 데이터를 전송하는 장치이다.
이러한 유형의 파일은 일반적으로 장치 파일이 저장되는 /dev 디렉토리에서 찾을 수 있습니다.LS 풀다양한 종류를 보실 수 있습니다.
괜찮은 Linux 배포판을 실행하고 있다면 다음 명령을 사용하여 해당 정보(필요한 것보다 더 많은 정보)를 얻을 수 있습니다.
info ls
여기에는 다음과 같은 작은 조각이 포함되어 있습니다.
파일 유형은 다음 문자 중 하나입니다. - 일반 파일 b 블록 특수 파일 C 문자 특수 파일 C 고성능("연속 데이터") 파일 d 디렉토리 D-Gate(Solaris 2.5 이상) l 심볼릭 링크 M 오프라인("마이그레이션") 파일(Cray DMF) n 네트워크 특수 파일(HP-UX) p FIFO(명명된 파이프) P 포트(Solaris 10 이상) 소켓 ? 기타 파일 형식
답변2
이 경우에는 "문자 지향 장치"(b는 블록 지향 장치를 의미)입니다. 이것이 바로 귀하의 예에서 /dev/null이 리디렉션에 매우 효율적인 이유입니다.
command 2> /dev/null
사실은 허가가 아니라 "정의 표시"입니다