일부 프로그램이나 시스템이 심볼릭 링크에 의존하는 이유는 무엇입니까?

일부 프로그램이나 시스템이 심볼릭 링크에 의존하는 이유는 무엇입니까?

문맥

ls/cd/tree마운트된 도커 볼륨에서 영구 파일을 찾기 위해 파일 시스템을 탐색할 때 더 많은 심볼릭 링크를 찾기 위해 끝없이 이어지는 디렉터리를 풀어내는 것이 어렵다는 것을 알게 되었습니다 .검색 결과가 만족스러운 답변을 얻지 못했기 때문에 잘못된 질문일 수도 있습니다.

질문

일부 프로그램이나 시스템이 심볼릭 링크에 의존하는 이유는 무엇입니까?

여기에 역사 수업이 있나요?도트파일의 기원에 관한 Rob Pike의 이야기?

Wikipedia 페이지를 읽었습니다.파일 시스템그리고심볼릭 링크, 완전히 설명됩니다.무엇,하지만

macOS에서 다음 디렉터리는 완전히 심볼릭 링크입니다.

  • /usr/local/bin
  • /usr/local/var/homebrew/linked

답변1

많은 시스템의지하다존재하다심볼릭 링크본질적으로기본 설정 처리.

프로그램 이름과 실행해야 하는 코드 간의 관계가 항상 모호한 것은 아닙니다(일대일 관계).

1대다:공통 프로그램의 다양한 구현이 시스템에 공존할 수 있고 사용자와 기록 스크립트는 신경 쓸 필요가 없거나 관심을 갖고 싶지 않으며 단지 몇 가지 공통 명령 이름을 트리거하기 때문에 관리자는 심볼릭 링크가 필요합니다.

가장 기본적인 sh명령을 생각해 보세요. 껍질만 많아요배쉬, csh, ksh, zsh...pffff...그리고 많은 관련 바이너리만이 시스템에 공존할 수 있습니다. 다음 중 간단한 요청이 있을 때 활성화되어야 하는 것은 무엇입니까 sh?

내 시스템에서는 임의의 결정이 간단합니다.

616457 0 lrwxrwxrwx 1 root root 4 14 mai     2021 /bin/sh -> bash

물론, 우리는 즉시 그것을 생각 sh하지만 일반적으로 사용되는 많은 명령 이름(awk, bzip2, bc, cpio, gzip, lex, tar, yacc...) 내 시스템에서:

616450 0 lrwxrwxrwx 1 root root 15  8 juil.   2020 /bin/awk -> ../usr/bin/gawk
484973 0 lrwxrwxrwx 1 root root 10  8 juil.   2020 /usr/bin/yacc -> yacc.bison
484674 0 lrwxrwxrwx 1 root root 4 27 nov.   02:14 /usr/bin/lex -> flex

물론, 동일한 프로그램의 서로 다른 버전이 공존하는 경우에는 이 모든 것이 유사해집니다. 실행 중인 커널의 소스 코드는 말할 것도 없고 컴파일러, 언어 해석기를 주로 고려하십시오. 내 시스템에서:

484470 0 lrwxrwxrwx 1 root root 43 26 nov.   23:43 /usr/bin/gcc -> /usr/x86_64-pc-linux-gnu/gcc-bin/10.4.0/gcc
485883 0 lrwxrwxrwx 1 root root 19  7 déc.  01:41 /usr/src/linux -> linux-5.4.225-0707a

다대일:또 다른 필요의지하다/sys심볼릭 링크는 정보를 검색할 때 여러 경로를 통해 쉽게 액세스할 수 있는 고유한 의사 파일에 정보가 있는 매우 특정한 파일 시스템에 적합합니다 .

관련 정보