저는 다양한 아키텍처를 위한 애플리케이션을 구축했으며 변수에 따라 올바른 버전으로 이동하는 "동적 심볼릭 링크"를 만들고 싶습니다.
현재 로그인한 컴퓨터가 x86이라면 심볼릭 링크를 통해 해당 버전으로 이동해야 합니다.
ㅏ시뮬레이션 예내가 하고 싶은 것:
$ uname -i
x86_64
$ ls -ltr
lrwxr-xr-x 1 dogbane gg 4 Feb 16 15:40 mylink -> @sys/
drwxrwxr-x 2 dogbane gg 2048 Feb 16 15:40 x86_64/
drwxrwxr-x 2 dogbane gg 2048 Feb 16 15:40 i386/
$ cd mylink
$ pwd -P
~/x86_64
가능합니까?
나는 이것을 사용할 수 있다는 것을 알고 있지만 cd $(uname -i)
더 간단한 것을 원합니다.
답변1
이 기능은 다음을 지원합니다.잠자리BSD,그것은 알려져있다변형 심볼릭 링크. 바라보다man varsym
그리고man ln
더 알아보기.
답변2
기호 링크는 정적입니다. 파일 시스템은 문자열만 저장하고 기호 링크에 대한 액세스는 기호 링크 위치에 상대적인 이름이 해당 문자열인 파일로 리디렉션됩니다.
한 번 쓰기 편해요퓨즈파일 시스템은 이러한 동적 심볼릭 링크를 노출하지만 기존 심볼릭 링크는 전혀 모릅니다.
답변3
나는 이것이 바이너리 파일이라고 가정하고 있으므로 심볼릭 링크 대신 PATH 변수 평가기를 사용하여 이를 수행할 것입니다.
PATH=$PATH:/base/$ARCH/bin
.
cfengine이나 puppet과 같은 도구를 사용하는 경우. 시스템 아키텍처에 따라 적절한 디렉터리에 대한 기호 링크를 만들 수 있습니다.
답변4
심볼릭 링크는 본질적으로 일부 경로를 포함하는 특수 플래그가 있는 파일이며 경로는 있는 그대로 해석되므로 이런 식으로 심볼릭 링크가 다른 곳을 가리키도록 만들 수 없습니다. 그러나 적절한 빌드를 실행하는 스크립트를 계속 작성할 수 있습니다.