tl; dr readlink -f 은 0기존 디렉토리에 존재하지 않는 파일을 realpath반환 하지만을 반환합니다 1. 그러나 존재하지 않는 파일 readlink -e처럼 작동 realpath하고 반환 1됩니다 (끝의 편집기 참고 사항 참조).
readlink -f
$ readlink -f non-existent-file
/home/user/non-existent-file
$ echo $?
0
readlink -e
$ readlink -e non-existent-file
$ echo $?
1
realpath
$ realpath non-existent-file
non-existent-file: No such file or directory
$ echo $?
1
readlink -f 존재하지 않는 디렉토리
readlink -f 경로의 존재하지 않는 부분에 따라 동작이 달라집니다.
$ readlink -f /tmp/non-existent-dir/foo
$ echo $?
1
가용성
readlink대부분의 Linux 배포판에 설치됩니다. 반면, realpath종종 명시 적으로 설치해야합니다.
요약하자면
호출을 바꾸려면 realpath ...을 사용하십시오 readlink -e ....
Ubuntu 16에서 readlink (GNU coreutils) 8.21 및 realpath 버전 1.19로 테스트되었습니다 .
( Ed .: @AnthonyGeoghegan은 " 이것은 데비안 버전을 말한다 realpath. GNU 버전은realpathreadlink -f " 와 동일하게 동작한다 ")
readlink -fGNU 오래 전에 OpenBSD에있었습니다. NetBSD에, FreeBSD의 및 오픈 BSD 이제 모든이readlink -f(당신의 링크가 심지어 그것을 언급).realpathFreeBSD와 IRIX에서 오랫동안 사용되어 왔습니다. (데비안에서 이전 버전인지는 모르겠습니다). HPUX 및 IRIX는이readlink아니지만,-f.realpath데비안 실험 의 패키지는 이제 coreutils 의 패키지입니다 (실험이 중단되는지 확인하는 실험으로). dwwwrealpath는readlink -eGNU 와 비슷하게 작동 하지만readlink -f완전한 드롭 인 대체 기능은 아닙니다