Абсолютный путь к символической ссылке

Есть ли возможность получить абсолютный путь к символическому файлу в bash? Я не могу использовать realpath() и readlink() дает путь к цели. Но мне нужен абсолютный путь этой символической ссылки.

1 ответ

Это задание? Я не могу представить реальную ситуацию, когда вам не разрешат использовать readlink но в любом случае, просто для удовольствия, вот скрипт для взлома, чтобы получить полный путь символической ссылки, предоставленной в качестве аргумента:

Для примера я буду использовать символическую ссылку pidof которая обычно указывает на / bin /, но является символической ссылкой на /sbin/killall5 (Ubuntu)

#!/bin/bash

linkpath="$(which $1)"

line="$(ls -la $linkpath)"

realpath="$(echo $line | awk '{print $NF}')"

echo "Full path is: $realpath"

exit

Выход:

user@system:~/Desktop$ ./test.sh pidof
Full path is: /sbin/killall5
user@system:~/Desktop$ 

Причина этого заключается в том, что выход ls показывает полный путь символических ссылок. (По крайней мере, в дистрибутивах Debian)

Другие вопросы по тегам