디렉토리 구조

디렉토리 구조

경로 중 하나에 콜론이 있는 경우에도 오버레이 설치가 가능한가요? 모든 FUSE 오버레이 설치 솔루션 콜론을 사용하여 오버레이에서 경로를 구분하는 방법을 살펴봤지만 이를 제거할 방법을 찾을 수 없습니다.

답변1

디렉토리 구조

foo:bar, 및 을 다루려고 한다고 가정해 보겠습니다 bar:baz. 마운트 지점은 다음과 같습니다.union

foo
└── a
bar
└── b
foo:bar
└── c
bar:baz
└── d
union

mergerfs

무엇으로부터 탈출하려고 노력하더라도, 당신은 할 수 있습니다소스에서 보기작동하지 않습니다. 탈출 방법을 추측하려고 하면 짜증납니다.

$ mergerfs 'foo\:bar':'bar\:baz' union

오류는 발생하지 않지만 존재하지 않는 디렉터리는 자동으로 무시됩니다.

$ ls union
b

unionfs-fuse

같은 질문마찬가지로 mergerfs콜론을 벗어날 수 없습니다. 디렉터리가 존재하지 않으면 최소한 다음 오류와 함께 실패합니다.

$ unionfs-fuse 'foo\:bar':'bar\:baz' union
Failed to open /foo\/: No such file or directory. Aborting!

overlayfs

overlayfs 하다경로에 이스케이프된 콜론이 허용되지만 FUSE 파일 시스템은 아닙니다.

$ mount -t overlay overlay -o lowerdir='foo\:bar':'bar\:baz' union
$ ls union
c  d

해결책

두 가지 모두에 적용되는 간단한 해결 방법은 기호 링크를 사용하는 것 mergerfs입니다 .unionfs-fuse

$ ln -s foo:bar foo_bar
$ ln -s bar:baz bar_baz
$ unionfs-fuse foo_bar:bar_baz union
$ ls union
c  d

관련 정보