How to retrieve absolute path given relative
Try realpath
.
~ $ sudo apt-get install realpath # may already be installed
~ $ realpath .bashrc
/home/username/.bashrc
To avoid expanding symlinks, use realpath -s
.
The answer comes from "bash/fish command to print absolute path to a file".
#! /bin/sh
echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"
UPD Some explanations
- This script get relative path as argument
"$1"
- Then we get dirname part of that path (you can pass either dir or file to this script):
dirname "$1"
- Then we
cd "$(dirname "$1")
into this relative dir and get absolute path for it by runningpwd
shell command - After that we append basename to absolute path:
$(basename "$1")
- As final step we
echo
it
use:
find "$(pwd)"/ -type f
to get all files or
echo "$(pwd)/$line"
to display full path (if relative path matters to)
If you have the coreutils package installed you can generally use readlink -f relative_file_name
in order to retrieve the absolute one (with all symlinks resolved)