Трассировка маршрута символической ссылки

Я хочу разрешить символическую ссылку с дополнительной опцией для печати всей ссылки. Например, я хочу запустить команду типа readlink -f "symlink2" которая сообщает о каждой записи readlink -f "symlink2" . Другими словами, если вы решите символическую ссылку «symlink2-> symlink1 -> / path / file», то результатом команды выше является «/ path / file», и я прокручиваю вывод, например:

 $readlink -f "symlink2 symlink1 /path/file 

  • слишком много уровней символических ссылок в / usr / bin - катастрофа?
  • Есть ли способ создать софт-ссылку, используя относительный путь? (не относительно дома или абсолютного)
  • Как удалить символические ссылки, указывающие на файлы в определенной папке?
  • Заменяет ли загрузчик Linux (ld.so) символические ссылки?
  • Переход в каталог, связанный ссылкой
  • Как создать ссылки на файловую систему vfat на смонтированном диске под Linux?
  • Сделать cd следовать символическим ссылкам
  • Архивирование домашней папки пользователя на удаленный сервер без каких-либо символических ссылок?
  • 2 Solutions collect form web for “Трассировка маршрута символической ссылки”

    Один из способов сделать это – создать собственную рекурсивную readlink .

     function readlinkWithPrint() { link=`readlink "$@"` [ -e "$link" ] && echo "$link" [ -h "$link" ] && readlinkWithPrint "$link" } 

    Вот тест:

     $ touch file $ ln -s file symlink1 $ ln -s symlink1 symlink2 $ readlinkWithPrint symlink2 symlink1 file 

    К сожалению, эта функция довольно простая; параметры, которые вы предоставляете frist readlink , не будут распространяться на остальные, плюс вы не сможете прочитать несколько файлов.

    Я думаю, что вы ищете namei , которое является частью пакета util-linux, доступным для каждой не встроенной системы Linux.

    См. Эту тему относительно эквивалента для macOS. Исходный код должен быть в основном переносимым, если вам это нужно в другом варианте Unix.

    Interesting Posts

    изменить имя пользователя учетной записи root

    Как объединить два командных вывода по строкам?

    Поиск используемого терминала

    Создание shebang, указывающее переносимо интерпретатору в папке сценария

    установка по умолчанию umask и пользователя: group on directory

    Как установить общий ресурс samba, чтобы гостевые пользователи могли просматривать все папки и подпапки, включая новые и старые

    Легкие пользовательские интерфейсы графического интерфейса пользователя

    Как сделать этот conky (Conky Vision) другим языком, чем английский?

    Блокировать движение для любого типа скобок?

    Как разрешить ошибку таймаута url при запуске команды yum?

    Как переместить панель задач на другой монитор в Linux Mint?

    Xorg и Xserver не запускаются после спящего режима

    Получить статус mongodb

    Как хранить бесконечный поток в файл?

    команда login не запрашивает имя пользователя / пароль

    Linux и Unix - лучшая ОС в мире.