폴더 내용 탑재 및 병합

폴더 내용 탑재 및 병합

한 폴더의 내용을 다른 폴더에 마운트하는 방법이 있습니까?

다음 내용이 포함된 폴더가 2개 있다고 가정해 보겠습니다.

Folder1       Folder2
  file1       file2

기본적으로 Folder1에 있는 Folder2의 모든 내용이 표시되기를 원합니다. 따라서 새로운 콘텐츠는 다음과 같아야 합니다.

Folder1       Folder2
  file1       file2
  file2

또한 폴더 2를 변경할 때 폴더 1의 내용도 업데이트되기를 원합니다. Folder2에 file3을 생성한다고 가정합니다. 두 파일 모두에서 새 파일을 볼 수 있기를 기대하고 있습니다.

Folder1       Folder2
  file1       file2
  file2       file3
  file3

따라서 일반적인 규칙은 다음과 같습니다.

  • Folder2에 파일을 생성/삭제/수정하면 해당 파일은 Folder1에도 표시됩니다.
  • 폴더 1(폴더 2에 속함, 예를 들어 파일 2 삭제)에서 파일을 생성/삭제/수정하는 경우 이러한 변경 사항은 폴더 2에서 수행됩니다.
  • 사용자는 Folder2 아래에서 Folder1의 콘텐츠를 볼 수 없습니다.

이러한 요구에 대한 해결책이 있습니까?

감사해요.

답변1

사용해 보세요파일 시스템 덮어쓰기

mount -t overlay overlay Folder1 -o index=off,workdir=$(mktemp -d),upperdir=Folder2,lowerdir=Folder1

모든 파일 변경 사항은 "Folder1" 및 "Folder2" 아래에 표시됩니다. 그러나 Folder1 원본 파일(예제 파일 1)을 변경하면 변경 사항이 Folder2에도 표시됩니다.

답변2

어쨌든, 나는 당신이 요구하는 것을 직접 수행하는 방법을 모릅니다. file1물론 둘 다 존재한다면 문제가 있을 것입니다.folder1folder2

아래의 각 파일/디렉터리에서 로의 링크를 생성할 수 있으며 folder2, folder1이 경우 아래의 각 파일/디렉터리에 대한 링크가 필요합니다 folder2. 링크를 업데이트하고 죽은 링크를 제거하는 스크립트를 만들 수 있습니다.

하드 링크를 사용하면 디렉토리 목록과 같은 작업을 수행할 때 원활하게 작동합니다.

그런 다음 이를 사용하여 하드 링크 생성/삭제를 inotify모니터링 folder1하고 트리거할 수 있습니다.folder2

관련 정보