# readlink Replicate `readlink -f` as bash script using mainly dependencies available on most platforms: * `readlink` (without options) * `cd` * `pwd -P` * `dirname` * `basename` * `test -e` (as `[ -e ]`) # Known issues * When `readlink` is part of a pipe some links contain the current pipe described like `pipe:[123456]` where the number changes on every call. `readlink` resolves these as valid links. e.g. ``` $ readlink -f /dev/stdout /dev/pts/0 $ readlink -f /dev/stdout | cat /proc/737861/fd/pipe:[2332393] $ ./rdlink.sh /dev/stdout ``` Whereas `rdlink` is not able to evaluate such links, because the pipe is already invalid as soon as a expression like `result="$(readlink "${tocheck}")"` returns.