내부 심볼릭 링크를 잃지 않고 사용자가 입력한 절대 경로

내부 심볼릭 링크를 잃지 않고 사용자가 입력한 절대 경로

내부 심볼릭 링크를 잃지 않고 쉘 스크립트에서 사용자 입력 경로(절대 또는 상대)를 절대 경로로 변환할 수 있습니까? 예를 들어 /a/b/c는 현재 사용자 디렉토리이고 c는 심볼릭 링크 b입니다. /처럼:

input .      => result /a/b/c
input ./d    => result /a/b/c/d
input ../c   => result /a/b/c
input /a/b/c => result /a/b/c
(readlink converts it to /a/b/s, but I need /a/b/c)

답변1

귀하의 질문을 올바르게 이해했다면 다음을 사용해야 realpath합니다 -s.

-s, --strip 스트립만 해당. 및 .. 구성 요소가 있지만 심볼릭 링크는 확인되지 않습니다.

$ realpath -s a/b/c
/tmp/a/b/c
$ readlink a/b/c
s

관련 정보