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 <file> ])

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.

Description
Replicate readlink -f as bash script using mainly dependencies available on most bash 3 platforms.
Readme 676 KiB
Languages
Shell 100%