변수의 심볼릭 링크가 가리키는 파일 이름을 캡처합니다.

변수의 심볼릭 링크가 가리키는 파일 이름을 캡처합니다.

심볼릭 링크가 있다고 가정해 보겠습니다.

/path/to/foo->/path/to/some_file.txt

쉘 변수가 있다고 가정해 보겠습니다 . 쉘 변수에 x=/path/to/foo어떻게 들어갈 수 있습니까 ?some_file.txty

답변1

존재하다 zsh,

y=${x:A:t}

절대경로 끝까지 확장됩니다 $x. 따라서 some_file.txtsome_file.txt자체가 다른 것에 대한 심볼릭 링크가 아닌 한.

zsh zstat그렇지 않으면 내장된 기능을 사용할 수 있습니다 .

zmodload zsh/zstat
zstat -A y +link -- $x && y=$y:t

답변2

당신은 그것을 사용할 수 있습니다readlink대상 파일의 경로 이름을 얻은 다음basename파일 이름을 추출합니다.

y="$(basename -- "$(readlink -- "$x")")"

관련 정보