Linux에서 디렉토리 항목과 링크의 차이점은 무엇입니까?

Linux에서 디렉토리 항목과 링크의 차이점은 무엇입니까?

링크와 디렉토리 항목의 차이점은 무엇입니까? 모든 링크(기호 링크 및 하드 링크)가 디렉토리 항목입니까? 디렉토리 항목이란 무엇입니까? 예를 들어 링크가 아닌가요?

답변1

기본적으로 POSIX와 유사한 파일 시스템에서는 파일 시스템 "주소"()은 디렉토리 항목입니다. 파일, 기타 디렉토리, 심볼릭 링크, 문자 장치 파일.

하드 링크는 두 개의 서로 다른 경로 아래에 나타나는 일반 파일입니다.

답변2

기존 Linux 파일 시스템에서는 각 파일이 inode입니다. 실제 파일의 경우 inode는 일반적으로 데이터 블록을 가리킵니다.

inode를 가리키는 디렉토리 항목입니다. 이러한 여러 디렉터리 항목은 동일한 inode를 가리킬 수 있으며 이를 구별할 방법이 없습니다. 둘 이상이 있는 경우 이를 하드 링크라고 합니다. inode에는 ls -linode에 있는 하드 링크 수를 나타내는 참조 카운터가 있습니다.

심볼릭 링크는 데이터 블록을 가리키지 않지만 다른 파일 이름을 포함하는 특별한 종류의 inode입니다. 따라서 inode에 연결되지 않고 이름(존재할 수도 있고 존재하지 않을 수도 있음)으로 다른 디렉토리 항목에 연결됩니다.

답변3

파일 링크와 디렉토리 항목은 동일합니다. 이는 관점의 문제입니다. 파일에 대한 링크는 디렉토리의 항목입니다. 디렉터리 관점에서는 디렉터리 항목이라고 하며, 파일 관점에서는 링크라고 합니다.

여기서 "링크"는 다음과 같습니다.딱딱한협회. 심볼릭 링크는 다른 개념입니다.

이 동등성은 "링크" 개념, 즉 디렉토리 항목과 파일 간의 어느 정도 간접적인 개념이 있는 파일 시스템에만 적용됩니다. 보다 구체적으로 이는 파일이 여러 링크를 가질 수 있는 파일 시스템, 즉 하드 링크를 지원하는 파일 시스템에 적용됩니다. 파일이 지정된 디렉터리에 있는 파일 시스템에서는 "링크" 개념이 적용되지 않습니다(반면 디렉터리 항목 개념은 디렉터리가 있는 모든 파일 시스템에 적용됩니다).

답변4

이 문제가 발생했습니다. /usr/local/bin->/LinuxStuff/bin 이 링크는 다음과 같이 생성되었습니다:
rmdir /usr/local/bin 다음에 ln -s /usr/local/bin /LinuxStuff/bin

하지만 아래와 같이 /etc/fstab 항목을 생성하는 유틸리티가 있습니다. /LinuxStuff/bin /usr/local/bin 바인딩 없음, 기본값 0 0

프로그램이 이 fstab 항목을 발견하거나 Linux 커널이 ln -s link ==>>>를 발견하면 결과는 충돌 세그폴트입니다.

연결되었거나 ln -s 또는 바인드가 적용된.../bin과.../bin을 구별하는 방법

관련 정보