Linux 기반 운영 체제가 동일한 디렉터리에 .files를 생성하고 해당 하위 디렉터리에 ..files를 생성하는 이유는 무엇입니까? 어떻게 작동하나요? [복사]

Linux 기반 운영 체제가 동일한 디렉터리에 .files를 생성하고 해당 하위 디렉터리에 ..files를 생성하는 이유는 무엇입니까? 어떻게 작동하나요? [복사]

안녕하세요!

현재 저는 심볼릭 링크, 하드 링크, 파일, 디렉토리 관련 주제에 대해 방금 배운 쉘 프로그래밍을 배우고 있습니다. 이해하려고 노력 중이에요 -

  1. 디렉토리에 두 개의 링크가 있는 이유는 무엇이며 디렉토리는 언제 생성됩니까?.그리고..디렉토리에 파일이 있나요? 어떻게 작동하나요?
  2. .디렉토리의 파일이 필요합니까?

좋은 설명이 도움이 될 것입니다.

미리 감사드립니다.

감사합니다
- Nazmul

답변1

.항목은 ..항상 디렉토리에 존재합니다.

그들은 구체적이지 않습니다리눅스;모두유닉스 시스템그것들을 소유하고,POSIX거의그들에게 묻다.GNU 허드VSTa에도 그런 기능이 있습니다. 아마도멀티플렉스 시스템그것들을 발명했습니다.운영 체제3 Unix에서 복사하여윈도우그들도 있습니다. 국제연구협의회가상 관리 시스템비슷한 것이 있습니다.

일단 프로그램(쉘, 프로그램 /bin/ls, 프로그램 또는 다른 것이 사용하는 경우)인터넷 TV(3), 등, 등등.....) 사용디렉토리 열기(3), 다음 몇 가지디렉터리 읽기(3)제공 .하고 (다른 호출이 readdir반환됩니다) ..(실제로는 기본입니다.흠집이 나다(2)).

.해당 항목 과 ..항목이 각각 제공되는지 는 알 수 없습니다.파일 시스템아니면 어떤 공통점을 통해가상 FS커널의 레이어(우리는 신경 쓰지 않아도 됩니다). 성공을 고려하다목차(2)창작물 ...출품작(적어도리눅스 커널).

.커널 경로 구문 분석 계층은 및 ..(및 )을 적절하게 처리합니다 /. 읽다경로 해상도(7). 파일 경로는 파일을 참조하는 데 사용됩니다(실제로 일부인덱스 노드), 동일한 파일에 여러 경로가 있을 수 있습니다(경우에 따라 경로가 없을 수도 있음).

모든 시스템 호출(다음에 나열됨)시스템 호출(2)) 프로세스 파일(예를 들어오픈(2),연결 해제(2),통계(2)그리고 다른 많은 것...) 커널의 경로 구문 분석 계층을 통해.

.디렉토리에 파일이 필요한 이유는 무엇 입니까?

어떤 상황에서는 매우 유용합니다. 예를 들어, (일부 프로그램이나 이상한 명령을 통해) -r이름이 매우 나쁜 파일을 만들 수 있습니다. 를 사용하여 rm ./-r삭제할 수 있습니다( rm -r매우 다른 의미가 있으므로). 쉘이 사용하는 것$PATH실행 파일을 찾기 위한 변수입니다. 현재 디렉터리에 실행 파일이 있는 경우 (이 역시 매우 나쁜 취향임) 이를 실행하려면 ls입력해야 합니다 (그렇지 않으면 디렉터리 에서 찾을 가능성이 높습니다 )../ls/bin/ls$PATHexecvp(3)또는 이에 상응하는).

원칙적으로 단일 캐리지 리턴이나 탭으로 명명된 파일에 대한 디렉토리 항목을 가질 수도 있지만 이는 역겨운 일입니다. 제거하는 방법은 독자의 연습 문제로 남겨 둡니다(그러나 사용할 수 있습니다 rm).

일부 기능(예:드로펜(3)) 포함 또는 제외에 대해서는 를 /참조하세요.이것.

그리고 ..유용하다상대 파일 경로. 당신은 또한 볼 수 있습니다실제 경로(3).

관련된 질문은 프로세스에작업 목록(모든 프로세스에는 고유한 프로세스가 있으므로cd 쉘에 내장되어 있어야 함). 이는 최소한 편의를 위한 것입니다(그리고역사적인레거시 문제와 같은 이유)뿐만 아니라 효율성도 중요합니다. 일부 시스템(페타바이트급 디스크를 갖춘 슈퍼컴퓨터 등)에서는 전체 파일 경로가 매우 길 수 있으며(예: 수백 문자) 긴 파일 경로를 입력하거나 모든 프로그램에서 이를 처리하도록 하고 싶지 않습니다. 당신은 또한 볼 수 있습니다목차(2),바우처(7),chroot(2).

다른 운영 체제(특히 MS-DOS)에서는 작업 디렉터리가 약간 다릅니다.

그건 그렇고, 파일은 필요하지 않습니다 (파일은 다음에서 제공됩니다)운영 체제핵심). 일부 실험적인 학술 운영 체제는 다른 운영 체제를 구현하고 있기 때문에 문서가 없습니다.~을 고집하다층. 1960년대 운영 체제는 매우 다른 파일을 제공했습니다(현재 POSIX에서 요구하는 파일과 다름).

(생각해보면 현재 컴퓨터에서 정보를 정리하는 데 파일이 반드시 최선의 방법은 아닙니다. 노트북에서 수천 장의 사진이나 몇 년 전에 쓴 편지를 찾는 것이 얼마나 어려운지 생각해 보십시오. 어렵습니다. 그럴 수 있기를 바랍니다. 미래의 운영 체제에서는 더 나은 것이 될 것입니다)

읽다운영 체제: 세 가지 간단한 부분(무료로 다운로드 가능). 연습으로 – 자신의 것을 구현하십시오유닉스 쉘(또는 기존 소스 코드를 그대로 연구합니다.무료 소프트웨어). 당신은 또한 볼 수 있습니다이것.

관련 정보