쉘 스크립트에서 심볼릭 링크 대상의 파일 이름을 얻는 방법은 무엇입니까?

쉘 스크립트에서 심볼릭 링크 대상의 파일 이름을 얻는 방법은 무엇입니까?

스크립트 이름이 이라고 가정해 보겠습니다 myscript. 이것은 심볼릭 링크입니다.thescript_1.91.sh

링크 대상의 이름을 얻을 수 있는 방법이 있나요? 예: 로그 파일에 쓰고 싶습니다.

cat <<EOF

#########################
`basename $0`
`date -R` 
#########################

EOF

$0은 서브쉘의 파일 매개변수 이름, 즉 "myscript"를 저장합니다.

여기서 링크 대상의 이름을 얻을 수 있는 방법이 있나요?

답변1

시스템에 readlink유틸리티가 있으면 이를 수행할 수 있습니다.

cat <<END_MESSAGE
#########################
$( basename "$( readlink -f "$0" )" )
$( date -R ) 
#########################
END_MESSAGE

-f옵션은 첫 번째 링크뿐만 아니라 주어진 경로 이름의 모든 기호 링크를 재귀적으로 해결하는 데 사용됩니다. readlink시스템 설명서를 참조하십시오 ( man 1 readlink).

관련 정보:

관련 정보