<> == How can I display the target of a symbolic link? == The nonstandard external command {{{readlink(1)}}} can be used to display the target of a symbolic link: {{{ $ readlink /bin/sh bash }}} If you don't have `readlink`, you can use Perl: {{{ perl -le 'print readlink "/bin/sh"' }}} You can also use GNU [[UsingFind|find]]'s `-printf %l` directive, which is especially useful if you need to resolve links in batches: {{{ $ find /bin/ -type l -printf '%p points to %l\n' /bin/sh points to bash /bin/bunzip2 points to bzip2 ... }}} If your system lacks both {{{readlink}}} and Perl, you can use a function like this one: {{{ # Bash readlink() { local path=$1 ll if [ -L "$path" ]; then ll=$(LC_ALL=C ls -ld -- "$path" 2>/dev/null) && printf '%s\n' "${ll#* -> }" else return 1 fi } }}} However, this can fail if a symbolic link contains " -> " in its name. ---- CategoryShell