디렉토리 구조 및 파일 시스템

디렉토리 구조 및 파일 시스템

차이점이 뭐야디렉토리 구조그리고파일 시스템?
유닉스/리눅스목차그리고파일 시스템다음과 같습니다.

다음 두 디렉터리는 분명히 우리가 인식하는 디렉터리입니다.

  /home/abc/xyzdir1 --is a directory
  /home/abc/xyzdir2 -- is a directory

다음 세 가지 예는 모두 파일 시스템에 관한 것입니다.

/proc -- is a file system
/ -- is a file system
/bin -- is a file system

어느 것이 무엇인지 어떻게 식별합니까?파일 시스템그리고목차위의 코드 조각에서?

답변1

사람들은 사용하지 않는다파일 시스템너무 조심스럽게. 귀하의 예에서는 전체 파티션(예: )이 이러한 디렉토리에 마운트되어 있으므로 /, /bin및 가 파일 시스템이라고 말하고 싶습니다 . 내 Arch Linux 시스템에는 파일 시스템이 없으므로 이 예는 완벽하지는 않지만.../proc/dev/sdb1/bin

% ls -lid /proc /home /boot /
2 drwxr-xr-x  17 root root 4096 Feb 24 12:12 //
2 drwxr-xr-x   4 root root 4096 May 16 14:29 /boot/
2 drwxr-xr-x   5 root root 4096 Mar 14 18:11 /home/
1 dr-xr-xr-x 116 root root    0 May 16 17:18 /proc/

전통적으로 inode 번호 2는 전체 디스크 파일 시스템의 "루트" inode입니다(이것은 문구의 또 다른 용도입니다). /, /boot모두 /homeinode 번호 2를 갖고, /proc커널에 의해 완전히 제공되고 디스크에 존재하지 않는 것들은 inode 1을 갖습니다. 이러한 inode 번호는 전체 디스크 파일 시스템 또는 가상 파일 시스템이 해당 이름으로 마운트되었음을 ​​나타냅니다.

"디렉토리입니다"라는 문구는 /home/abc/xyzdir1기본적으로 해당 이름으로 마운트된 디스크에 파일 시스템이 없다는 것을 의미합니다. ls -lid디렉터리에서 동일한 명령을 실행 하면 다음과 같은 결과가 나타납니다.

 % ls -lid /home/bediger/src
3670039 drwxr-xr-x 29 bediger bediger 4096 May 17 19:57 /home/bediger/src/

Inode 번호 3670039는 정확히 내 컴퓨터에 마운트된 디스크 파일 시스템에서 할당된 모든 inode입니다 /home.

mount이 명령을 호출하여 파일 시스템을 찾을 수도 있습니다 . 마운트된 모든 파일 시스템과 마운트된 위치를 나열합니다.

답변2

지나치게 단순화할 위험이 있으므로,

  • 파일 시스템은 자동차 엔진 및 기타 내부 시스템과 같습니다.
  • 디렉토리 구조는 운전하는 곳의 지도와 같습니다.

누군가 나에게 앙코르를 해달라고 부탁해서

  • 파일 시스템은 아날로그 RF 방송, 디지털 RF 방송, 케이블, 인터넷, 비디오 테이프, 비디오 디스크 등 오디오/비디오 신호 배포/전파를 위한 메커니즘(구현 세부 사항)과 같습니다.
  • 디렉토리 구조는 TV 쇼의 콘텐츠 및 코미디, 드라마, 뉴스, 다큐멘터리, 게임 쇼, 스포츠 등과 같은 분류와 같습니다.

코드를 원하면 이 답변의 전반부를 참조하세요. Linux 파일 시스템이 실행 중인 시스템에 속하는지 확인하는 방법— 검증 확인 대상 섹션 root_dir. Bruce가 말한 대로 하십시오. 디렉토리인지 확인하고 inode 번호가 1인지 2인지 확인하십시오.

답변3

제 생각에는 UNIX 의미의 파일 시스템은 디렉토리 트리(디렉토리 구조)를 구현하는 방법, 더 정확하게는 UNIX 파일 시스템 API를 구현하는 방법입니다. 루트 파일 시스템은 하나의 특정 구현으로 지원되며 마운트 지점 디렉토리로 이동할 때마다 다른 것으로 지원되는 하위 트리로 이동합니다.

인터페이스는 항상 동일하지만 어떤 경우에는 백엔드에 특정 디스크 파티션이 있고 다른 경우에는 저장 장치에 전혀 쓰지 않는 프로그램이 있습니다. 파일 시스템은 proc노출된 커널 내부의 소프트웨어에 의해 백업되며, tmpfs다른 파일 시스템은 네트워크나 다른 곳에 쓸 수 있습니다.

UNIX가 아닌 의미에서 파일 시스템은 데이터 저장소를 구성하는 방법입니다. ext4, btrfs, fat및 는 ntfs이러한 의미에서 파일 시스템이며 UNIXy에서도 파일 시스템 API를 구현합니다. proc데이터 저장소를 구성하지 않기 때문에 더 제한된 패러다임에서는 파일 시스템으로 분류되지 않습니다.

간단히 말해서:

  • 디렉토리 구조/트리=프런트엔드
  • 파일 시스템 = 백엔드

답변4

파일 시스템 및 디렉터리에 대한 가정을 수정하는 것부터 시작하십시오. 파일 시스템에는 하나 이상의 디렉터리가 포함되어 있습니다. 귀하의 예를 사용하면 /proc및 디렉토리 /입니다 /bin. 그 자체로는 "파일 시스템"이 아니지만 해당 파일 시스템의 루트일 수 있습니다.

파일 시스템의 마운트 지점(루트)이기도 한 디렉터리를 확인하려면 다음과 같이 사용할 수 있습니다.

F="$PWD"    # The directory to be tested
if test -d "$F"
then
    echo "$F is a directory"
    test "X$(stat --format '%m' "$F")" = "X$PWD" && echo "$F is a mountpoint"
fi

관련 정보