Возможность чтения ссылки в Linux и MacOS, которая возвращает путь к файлу, если это не символическая ссылка

Вы ищете билды "алтарь". В последних выпусках RHEL/CentOS i386 больше не является гражданином первого класса.

Вот ссылка на зеркало с ISO-образами i386 ->http://mirror.centos.org/altarch/7/isos/i386/

0
06.08.2019, 12:50
1 ответ

Для системы GNU/Linux, флаг -fдля readlink(--canonicalize), «канонизировать путем рекурсивного следования каждой символической ссылке в каждом компоненте данного имени » сделает это за вас:

touch /tmp/real
ln -s /tmp/real /tmp/link

readlink -f /tmp/real    # → "/tmp/real"
readlink -f /tmp/link    # → "/tmp/real"

Для системы Mac OSX сделать это невозможно, « Если данный аргумент не является символической ссылкой, readlinkничего не напечатает и завершится с ошибкой ».

Для обеих систем вы можете найти документацию и все доступные опции для readlinkс помощью man readlink.

Самое близкое, что вы можете получить, это -общее решение для OSX, похожее на эту функцию

readlinkorreal() { readlink "$1" || echo "$1"; }

readlinkorreal /tmp/real    # → "/tmp/real"
readlinkorreal /tmp/link    # → "/tmp/real"
4
28.01.2020, 02:39

Теги

Похожие вопросы