Search code examples
shellpathname

Is there some shell full path function?


Is there some native function(shell, linux command) to merge/compute the full path?

example:

old_path="~/test1/test2/../dir3//file.txt"
new_path=FUN($old_path)

echo "$new_path"   // I want get this "/home/user/test1/dir3/file.txt"    

Solution

  • Use readlink:

    $ readlink -m ~/foo.txt
    /home/user/foo.txt
    $ readlink -m ~/somedir/..foo.txt
    /home/user/foo.txt
    

    It also handles symlinks.