다른 디렉토리의 내용을 가지고 있는 것처럼 보이는 UNIX make 디렉토리

다른 디렉토리의 내용을 가지고 있는 것처럼 보이는 UNIX make 디렉토리

a와 b라는 2개의 디렉토리가 있는 경우 파일을 복사하지 않고 a와 b의 내용이 모두 포함된 것처럼 보이는 디렉토리를 만드는 편리한 방법을 제안할 수 있는 사람이 있습니까? 현재 내가 사용하고 있는 것은 ln -s *를 사용하여 많은 기호 링크를 만들고 작업이 끝나면 기호 링크를 삭제하는 것입니다. 하위 디렉토리의 내용이 병합된 것처럼 보이고 이를 심볼릭 링크 방법으로 관리하면 약간의 조작이 필요할 수도 있습니다.

애플리케이션에 따라 결과 디렉토리가 읽기 전용이면 괜찮습니다.

답변1

다음을 사용하여 디렉토리에 효과적으로 병합할 수 있습니다.UnionFS두 개의 디렉터리(이 컨텍스트에서는 분기라고 함)를 하나의 단일 마운트 지점으로 오버레이합니다.

UnionFS에는 여러 가지 구현이 있습니다.UnionFs퓨즈(커널 패치가 아닌) 애플리케이션이기 때문에 가장 간단한 것 중 하나입니다.

웹사이트에는 해당 아카이브에 대한 링크가 포함되어 있습니다. 소스 코드 컴파일은 대부분의 배포판에서 간단해야 합니다.

예를 들어 우분투에서는 패키지를 설치하는 것으로 충분합니다.Unionfs-퓨즈다음 명령을 실행하여:

sudo apt-get install unionfs-fuse

설치가 완료되면 디렉터리 오버레이를 진행할 수 있습니다. 다양한 옵션이 있습니다. 가장 기본적인 사항을 간략하게 설명하겠습니다.

  • 명령

      unionfs-fuse foo:bar baz
    

    디렉토리의 내용을 오버레이합니다.그리고술집디렉토리에바즈. 1

    이 오버레이는 읽기 전용입니다. 파일을 생성하거나 수정하려는 모든 시도바즈결과는 다음과 같습니다허가가 거부되었습니다.오류. 그러나 내부의 파일을 계속 생성하고 수정할 수 있습니다.그리고술집그들 자신.

    충돌은 고정된 방식으로 처리됩니다. 파일이 상위 분기(), 하위 브랜치(술집).

  • 명령

      union-fuse foo=RW:bar=RO baz
    

    만든다쓰기 가능하고술집(읽기 전용). 파일 수정가능하지만 파일을 수정하는 것은술집그렇지 않을 것입니다. 새로 생성된 모든 파일은 다음 위치에 있습니다.바즈에 나타날 것이다.

  • 명령

      union-fuse -ocow foo=RW:bar=RO baz
    

    마지막 명령과 비슷합니다. 그만큼쓰기 중 복사옵션( cow)은 다음 파일을 수정하려고 시도하는 효과가 있습니다.술집내부에바즈그러면 파일의 수정된 복사본이 생성됩니다.(또는 다른 상위 수준의 쓰기 가능한 분기).

  • 명령으로

      union-fuse foo=RW:bar=RW baz
    

    모두 수정 가능합니다. 새 파일은 최상위 분기().

  • 명령

      union-fuse foo=RO:bar=RW baz
    

    파일 수정을 허용합니다술집내부에바즈, 그러나 새 파일을 생성할 수는 없습니다.

  • 명령

      sudo umount baz
    

    유니온 마운트를 취소합니다.

또한보십시오:남자 Unionfs-퓨즈


1 바즈이 명령이 실행되기 전에 존재해야 합니다. 이는 모든 추가 명령에도 적용됩니다.

관련 정보