Абсолютный путь к символической ссылке
Есть ли возможность получить абсолютный путь к символическому файлу в 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)