파일을 볼 때 "ls -l"의 첫 번째 필드가 "f"가 아닌 이유는 무엇입니까? [폐쇄]

파일을 볼 때 "ls -l"의 첫 번째 필드가 "f"가 아닌 이유는 무엇입니까? [폐쇄]

"ls -l"을 수행하면 다음과 같은 결과가 나올 수 있습니다.

-rw-r--r-- 1 root root 209 Mar 30 17:41 fname

첫 번째 필드는 입니다 -. 이는 파일임을 의미합니다.

파일이 아닌 디렉토리인 경우 첫 번째 필드는 입니다 d.

유닉스 개발자들은 왜 d디렉토리에는 명확하고 직관적인 것을 사용하고, -파일을 나타내는 데에는 a를 사용하기로 결정했을까요? 파일 에는 왜 안되나요 f?

편집하다
매우 흥미로운 반응. 다양한 아이디어가 있으며, 그 이유 때문에 구현 및/또는 문서화된 것보다 일부가 더 무심코 사실인 것처럼 보일지라도 모두 의미가 있습니다.

답변1

ls역사적으로 Unix의 큰 디자인 결정 중 하나는 모든 것을 파일로 처리하는 것이었습니다 stat. 예를 들어 V3(1973년 2월)에서는stat맨페이지(사용된 패턴을 설명합니다 ls) 말한다

패턴은 다음 문자 의미를 지닌 6자 문자열입니다.

  1. s: 파일이 매우 작습니다(4096바이트 미만)
    l: 파일이 매우 큽니다.
  2. d: 파일이 디렉터리입니다
    x. : 파일이 실행 가능합니다
    u. : 실행 시 사용자 ID가 설정됩니다.
    -: 위에 해당되지 않습니다.

등.

V4(1973년 10월)에서는 모드가 오늘날의 모드와 비슷해지기 시작했습니다.ls맨페이지설명하다

이 옵션에서 인쇄되는 패턴은 -l10자를 포함하며 다음과 같이 설명됩니다.

첫 번째 문자는
d 항목이 디렉토리인지 여부를 나타내고
b 항목이 블록 유형의 특수 파일인 경우
c 항목
- 이 일반 파일인 경우를 나타냅니다.

다음 9개 문자는 각각 3자리 숫자로 구성된 세 그룹으로 해석됩니다.

따라서 Unix 제작자는 일반 파일이 특별한 것이 아닌 "그냥" 기본값이라고 생각한 것 같습니다. 따라서 문자를 사용할 자격이 없습니다. 모든 것이 파일이고 일반 파일이 아닌 파일만 추가 설명이 필요합니다. . -이를 "특수성"이 부족하다는 신호로 받아들일 수 있습니다 .

엄밀히 말하면, 디자인 결정은 모든 것을 파일로 처리하는 것이 아니라 파일 시스템을 통해 모든 것에 액세스할 수 있도록 하는 것이었지만 결과적으로 모든 것을 일종의 파일로 사용할 수 있어야 하므로 다양한 유형의 파일을 구별할 수 있는 능력이 필요합니다. 파일 . 바라보다섹션 3UNIX 시간 공유 시스템.

관련 정보