ls 명령에서 c 유형이 무엇인지 알고 싶습니다.
나는 /dev/stdin의 심볼릭 링크를 따라갔고 /dev/pts/0으로 끝났습니다.
$ ls -l /dev/pts/0
crw--w---- 1 blue tty 136, 0 Apr 8 21:50 /dev/pts/0
패턴 출력의 첫 번째 기호가 임을 알 수 있습니다 c
. 이제 이것이 무엇을 의미하는지 알아 내려고 노력하고 있습니다.
일부 정보를 찾을 수 있지만 c는 나열되어 있지 않으며 그 중 일부도 약간 잘못된 것 같습니다. 적어도 내 상자에는 심볼릭 링크에 대문자 L 대신 소문자 l이 있습니다.
d if the entry is a directory;
a if the entry is an append-only file;
D if the entry is a Unix device;
L if the entry is a symbolic link;
P if the entry is a named pipe;
S if the entry is a socket;
- if the entry is a plain file.
원천:http://manpages.ubuntu.com/manpages/jammy/en/man1/ls.1plan9.html
man pts
나는 이것이 의사 터미널 마스터-슬레이브 쌍이라는 것을 읽을 수 있습니다 .
ptmx, pts - 의사 터미널 마스터 및 슬레이브 장치
프로세스가 /dev/ptmx를 열면 의사 터미널 마스터 장치의 파일 설명자를 얻고 /dev/pts 디렉토리에 의사 터미널 슬레이브 장치를 만듭니다. /dev/ptmx를 열어 얻은 각 파일 설명자는 자체 관련 슬레이브가 있는 독립적인 의사 터미널 호스트이며, 해당 경로는 파일 설명자를 ptsname(3)에 전달하여 찾을 수 있습니다.
그렇다면 c
그것은 무엇을 의미합니까? 내 생각엔 이것이 pseudoterminal slave device
.
편집하다:
c
더 읽고 생각해 본 결과, 본질적으로 이것이기 때문인 것 같습니다.편안.
답변1
"c"는 해당 장치가 "문자 특수 장치"임을 나타냅니다. 보시면 /dev
모든 디스크와 마찬가지로 "특수 장치 차단"을 의미하는 "b"도 표시됩니다. 바라보다위키피디아.
장치 파일을 사용하면 장치 드라이버에 직접 액세스할 수 있습니다. 역사적으로 UNIX는 디스크와 같은 블록 구조 장치를 위한 문자 장치와 블록 장치를 제공했습니다. "c" 장치를 사용하면 시스템 버퍼를 거치지 않고 장치에 직접 액세스할 수 있습니다. 이름은 약간 오해의 소지가 있습니다. "raw"가 더 좋았을 것입니다. 그러나 역사에 따르면 "c"가 지정되었습니다. 터미널의 경우 한 번에 하나 이상의 문자를 출력하거나 입력할 수 있습니다. 디스크의 경우 바이트 수준 액세스를 허용하지 않더라도 호출자는 모든 블록 정렬 및 주소 지정이 호출자에 의해 수행되었는지 확인해야 합니다. "b" 장치는 "버퍼" 장치라고 부르는 것이 더 적절할 수 있습니다. I/O는 시스템의 버퍼에서 수행되고 시스템이 결정한 지점에서 디스크로 이동됩니다. 버퍼링으로 인해 장치 드라이버는 다양한 크기의 정렬되지 않은 블록을 허용할 수 있습니다.
답변2
첫 번째 문자는 파일 형식을 식별합니다.
- Regular file
b Block special file
c Character special file
d Directory
l Symbolic link
n Network file
p FIFO
s Socket
일반 파일의 경우 "-"를 다음으로 바꿀 수 있습니다.
D Demand recall file
E Encrypted file
O Offline file
S Sparse file