"foo"라는 도구를 작성할 때 PROJECT/bin/foo가 ../libexec/foo에 심볼릭 링크된 이유는 무엇입니까?

"foo"라는 도구를 작성할 때 PROJECT/bin/foo가 ../libexec/foo에 심볼릭 링크된 이유는 무엇입니까?

저는 소스 코드를 읽으면서 bash와 unix를 배웠습니다.

이 부분은 왜 이런 식으로 처리되었는지 이해가 되지 않습니다.

주요 도구 실행 파일은 심볼릭 링크입니다. 여기에는 어떤 이점이 있나요?

여기에 이미지 설명을 입력하세요.

원천

답변1

kmod 자체 호출과 마찬가지로 다중 호출 바이너리의 경우 아이디어는 간단한 사용자 인터페이스를 제공하는 것입니다. 일부는 옵션이 더 적습니다.

man kmod는 "대부분의 사용자는 다른 이름으로 실행합니다."라고 말합니다.

$  ls ??mod ???mod modprobe kmod -l
-rwxr-xr-x 1 root root  63496 Mar 11  2019 chmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 depmod -> kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 insmod -> kmod
-rwxr-xr-x 1 root root 161856 Feb 13  2019 kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 lsmod -> kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 modprobe -> kmod
lrwxrwxrwx 1 root root      4 Feb 13  2019 rmmod -> kmod

bin/exec귀하의 예에서 이는 "일반적인" plus 대신 큰 실행 파일/라이브러리가 있음을 의미합니다 some/lib/library. 따라서 아무 심볼릭 링크나 사용하여 호출하세요. 또는: rbenv어디서나 심볼릭 링크를 사용하세요. 나는 이것이 개발의 일부 측면을 더 쉽게 만들 것이라고 생각합니다.

관련 정보