ls ..는 심볼릭 링크에서 제대로 작동하지 않습니다.

ls ..는 심볼릭 링크에서 제대로 작동하지 않습니다.

내 디렉토리 설정은 다음과 같습니다

~/code
~/code/src
~/code/build -> /path/to/somewhere/else

마지막은 심볼릭 링크입니다.

만약 내가한다면

cd ~/code/build
ls ..

그런 다음 목록을 얻었 /path/to/somewhere지만기타 비고그리고 내 경험에 비추어 볼 때 목록을 보고 싶습니다 ~/code. 예전에는 그 반대였었다고 맹세합니다.

저는 우분투에서 zsh와 bash를 사용하고 있습니다. 그러한 설정이 있습니까, 아니면 POSIX와 같은 것에 깊이 포함되어 있습니까?

답변1

문제가 아닙니다 ls. 이것이 바로 심볼릭 링크가 작동하는 방식입니다. 현재 디렉토리의 상위 디렉토리로 이동 하지만 ..심볼릭 링크를 통해 도달했는지는 알 수 없습니다. 이 동작을 방지하려면 쉘이 개입해야 합니다. 쉘 내장 기능을 호출할 뿐만 아니라 전체 디렉토리 경로를 기억하고 원하는 것이 무엇인지 알아내는 cd특수 처리 방법이 있습니다 . 그러나 내장되어 있지 않습니다. 기대하는 결과를 얻으려면 셸을 전달하기 전에 다른 경로로 변경해야 합니다. 옵션이 도움이 될 수 있습니다.chdirls..lszshCHASE_DOTS

일반적으로 디렉토리에 대한 심볼릭 링크는 더러운 것입니다. 중요하고 반영구적인 응용 프로그램의 경우 을 사용하십시오 mount --bind.

답변2

내 태그로 질문에 태그를 지정했기 때문에 zsh쉘에 대해 이야기하고 있다고 가정합니다.

oh-my-zsh변수 및 CHASE_LINKS/또는 CHASE_DOTS. 실행을 확인 setopt | grep -i chase하고 목록에 있는지 확인하세요. 그렇다면 설정을 해제하세요.

unsetopt CHASE_DOTS
unsetopt CHASE_LINKS

관련 정보