Странность с символами и относительными путями

Может ли кто-нибудь объяснить это мне? У меня возникли проблемы с пониманием того, как это настроено и почему оно ведет себя так, как оно.

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

 $ ls -l /bin/zsh lrwxrwxrwx 1 root root 14 Dec 1 2011 /bin/zsh -> ../sfw/bin/zsh* 

Когда я увидел это, я подумал: «Хорошо, символическая ссылка использует относительный путь. Нет ничего сложного».

Но если я затем попытаюсь напрямую cd к тому, что должно быть там, где находится относительный путь, я получаю следующее:

 $ cd /bin/sfw/bin cd: no such file or directory: /bin/sfw/bin 

Однако, если я специально напечатаю это

 $ cd ../sfw/bin 

когда /bin – рабочий каталог, то он работает. И затем я также получаю следующее:

 $ pwd /usr/sfw/bin 

Что здесь происходит?

One Solution collect form web for “Странность с символами и относительными путями”

/bin , вероятно, символическая ссылка на /usr/bin в вашей системе. Если это так, то:

 /bin/../sfw/bin/zsh 

фактически будет таким же, как

 /usr/bin/../sfw/bin/zsh 

который сводится к

 /usr/sfw/bin/zsh 

где находится zsh . Обратите внимание, что вы пытались,

 /bin/sfw/bin 

не соответствует ни одному пути, который вы действительно могли видеть в системе. Правильный способ разрешить относительный путь ( ../sfw/bin/zsh ) с учетом абсолютного пути пути, который формирует базу для этого относительного пути ( /bin ), состоит в том, чтобы объединить их вместе как /bin/ + ../sfw/bin/zsh/bin/../sfw/bin/zsh .

  • Нет доступа к папке symlink на разделе NTFS
  • /sbin/mkfs.fs действует как двоичный файл, хотя это символический файл ссылки
  • Скопировать символическую ссылку И где она указывает на использование rsync
  • только показать исходный файл и целевой файл с помощью `ls`
  • Могу ли я сделать символическую ссылку на разные местоположения на разных машинах?
  • копировать и символизировать mysql в другой раздел диска
  • ls -l vs ls -lL
  • Жесткие ссылки по сравнению с символическими ссылками: какой из них быстрее / меньше?
  • Использование ~ в цели символической ссылки или создание символической ссылки с переменной
  • команда tar - пропустить символические ссылки
  • Как сделать $ ORIGIN в RPATH не следовать символическим ссылкам?
  • Linux и Unix - лучшая ОС в мире.