Вы можете использовать эту функцию. Если имя файла задано без относительного пути, то предполагается, что оно присутствует в текущем рабочем каталоге:
abspath() { old=`pwd`;new=$(dirname "$1");if [ "$new" != "." ]; then cd $new; fi;file=`pwd`/$(basename "$1");cd $old;echo $file; }
Использование:
$ abspath file.txt
/I/am/in/present/dir/file.txt
Использование с относительным путем:
$ abspath ../../some/dir/some-file.txt
/I/am/in/some/dir/some-file.txt
С пробелами в имени файла:
$ abspath "../../some/dir/another file.txt"
/I/am/in/some/dir/another file.txt