Btrfs는 변경되지 않는 ID와 같이 경로가 변경되더라도 파일을 식별할 수 있는 방법을 제공합니까?

Btrfs는 변경되지 않는 ID와 같이 경로가 변경되더라도 파일을 식별할 수 있는 방법을 제공합니까?

Btrfs는 경로 이외의 파일을 식별하는 방법을 제공합니까? 내 말은, 파일이 있고 /my/directory/a.txt누군가 또는 무언가가 그 파일로 이동하면 /my/other/directory/b.txt여전히 동일한 파일이지만 경로가 변경되었으므로 "b.txt"가 "a"인지 알 방법이 없다는 것입니다. .txt". TXT".

답변1

가지다아이노드 번호ls -i( , 참조 stat), 많은 (모두?) 다른 *nix 파일 시스템과 같습니다. Btrfs에서는 안정적이지만(재부팅하거나 다른 시스템에 설치하는 경우에도 변경되지 않음) 하위 볼륨 내에서만(전체 파일 시스템1 내에서는 아님 ) 고유하며 재사용할 수 있습니다.

동일한 inode 번호를 동시에 보고하는 동일한 하위 볼륨 내의 두 경로는 동일한 파일로 이어집니다.하드 링크 작동 방식. 그러나 일반적으로 말하면 오늘의 inode 번호가 다음과 같은지 여부를 확인할 수 없습니다.질소어제와 같은 파일질소.

누구도 액세스할 수 없는 디렉터리에 하드 링크를 유지하는 것이 해결 방법이 될 수 있습니다. 하드 링크가 존재하는 한 해당 inode 번호는 동일한 하위 볼륨 내에서 재사용될 수 없습니다. 그럼 넌 할 수 있어동일한 inode 번호를 가진 모든 파일 나열요청 시.

어떤 경우에는 파일이 새 위치에 있는 공식적으로 다른 파일이기 때문에 여전히 파일을 추적할 수 없습니다. 여기에는 다음이 포함됩니다.

  • 복사+삭제를 통해 원본이 "이동"된 경우(CoW 복사 여부에 관계없음)
  • 원본이 다른 하위 볼륨으로 이동된 경우.
  • 원본 파일을 다른 파일 시스템으로 이동한 경우(이것은복사+삭제 참).

1 두 개의 서로 다른 하위 볼륨은 두 개의 서로 다른 장치 번호를 의미합니다.심지어단일 마운트 지점(마운트된 (big-...-) 상위-하위 볼륨)에서 액세스할 수 있는 경우. 이것이 Btrfs가 작동하는 방식입니다.

답변2

예를 들어 파일에 대한 하드 링크를 만들어야 한다고 말하고 싶습니다. 그리고

ln -L /path/to/a.txt /unique/path/in/the/same/fs

성공하면 파일 이름이 바뀌거나 삭제되더라도 파일에 계속 액세스할 수 있습니다.

"약한" 하드 링크(파일에 대한 다른 모든 하드 링크가 삭제되면 자동으로 삭제되는 하드 링크)를 만드는 방법을 모르겠습니다.

관련 정보