심볼릭 링크에서 작동하는 많은 기본 기능의 경우 기본적으로 물리적 경로가 사용되는 것 같습니다. 그러나 CD는 잘 작동합니다. 심볼릭 링크를 입력할 때 cd는 내가 어디에서 왔는지 기억하므로 심볼릭 링크의 논리적 주소를 사용합니다(예를 보려면 관련 게시물 참조:심볼릭 링크와 CD).
ls와 같은 함수는 부분적으로만 이런 방식으로 작동합니다. 탭($ls ../{tab})을 클릭하여 디렉토리 내용을 나열하면 심볼릭 링크가 있는 디렉토리의 내용이 나열되지만 ($ls ../{enter}) 명령을 실행하면 디렉터리 내용 목록은 실제 경로에서 나옵니다. ls, mv, rm 등과 같은 명령이 cd처럼 작동하고 심볼릭 링크의 논리적 경로를 기억하도록 하는 방법이 있습니까?
어떤 조언이라도 감사드립니다.
답변1
디렉토리를 가리키는 기호 링크가 기호 링크 위치에 뿌리를 둔 실제 디렉토리라는 환상을 제공하는 것은 쉘입니다. cd
셸에 내장된 기능이어야 하며, 탭 완성도 셸에서 실행되는 기능입니다. 쉘에 의해 실행되기 때문에 cd
심볼릭 링크를 인식하고 환상을 유지할 수 있습니다. 대부분의 Unix 명령은 셸에서 구현되지 않으므로 현재 디렉터리에 도달하기 위해 기호 링크를 통과했는지 알 수 있는 방법이 없습니다. 이러한 명령( ls
, 등)은 기호 링크 mv
를 rm
이해할 수 없기 때문에 이러한 환상을 유지할 수 없습니다.