$PATH 환경 변수가 길어지면 어떤 결과가 발생합니까?

$PATH 환경 변수가 길어지면 어떤 결과가 발생합니까?

나에게 정말로 필요한 기능은 실제 디렉터리 모음을 병합하여 "가상 디렉터리"를 생성하는 기능입니다(따라서 디렉터리는 /usr/bin실제로 디렉터리 배열을 가리키는 가상 디렉터리가 됩니다).

그러나 이 기능은 일부 운영 체제에서 사용할 수 있지만 보편적이지 않으며 예를 들어 내년에 사용하는 운영 체제에서 이 기능을 지원할 것이라고 기대할 수 없습니다.

현재 저는 해결 방법으로 $PATH 변수를 사용하고 있습니다. 여기서는 "병합"하려는 전체 디렉토리 모음을 저장합니다(맨 페이지에는 $MANPATH와 같은 다른 변수를 사용하고 라이브러리에는 이와 유사한 변수를 사용할 계획입니다). ).

현재는 "병합 디렉터리" 컬렉션이 크지 않기 때문에 성능 문제가 발생하지 않습니다. 하지만 앞으로 디렉터리 수가 수백 개에 도달하면 문제가 발생할지 궁금합니다(모르겠습니다). 그렇게 많은 일이 일어날지는 알 수 없습니다).

내 추측으로는 가까운 미래에 "병합된" 디렉토리의 예상 개수는 대략 이 정도가 될 것입니다.40도착하다50.

이 기능에 대해 제가 찾은 해결 방법은 주로 심볼릭 링크 관리를 기반으로 하며, 병합된 모든 디렉터리의 모든 파일을 "통합" 디렉터리에서 해당 파일을 가리키는 심볼릭 링크로 효과적으로 미러링하는 것입니다. 그러나 이 접근 방식은 나에게 너무 복잡해 보입니다. 깔끔하고 깨끗한 솔루션처럼 보이지 않습니다.

$PATH 방법을 계속 사용할 수 있다고 생각하시나요? 아니면 중단하고 다시 고려하여 다른 옵션을 찾아야 합니까?

답변1

껍데기대개외부 유틸리티가 발견된 위치에 대한 정보를 캐시합니다. 즉, 캐시되지 않은 각 유틸리티에 대해 실제로 한 번만 조회하면 됩니다.

$PATH합리적인 쉘을 사용한다면, 머지않아 심각한 성능 문제가 발생할 것이라고 생각하지 않습니다.

대체 솔루션을 확인하려면 다음을 확인하세요.GNU 스토우.

답변2

$PATH솔루션은 시작 시 성공적인 설정에 크게 의존합니다 $PATH. 환경 구성이 손상/제거된 경우 전체 설정이 실패합니다.

기호 링크 방법은 설정이 조금 더 복잡하지만 기본적으로 자립적이므로 더 강력합니다.

GNU Stow 프로젝트와닉 OS실제로 어떻게 작동하는지에 대한 통찰력을 얻기 위해 사용하거나 조사할 수 있는 심볼릭 링크 접근 방식을 사용하는 두 가지 방법이 있습니다.

관련 정보