Знак вопроса (и отключенные элементы всплывающего меню) указывает, что терминал считает, что рабочий каталог находится на удаленном компьютере, и поэтому вы не можете перейти к нему в Finder с помощью всплывающего меню. Если вы посмотрите на последний пункт во всплывающем меню (Ctrl + клик на значке «прокси»), то увидите компьютер / хост, на котором терминал считает, что рабочий каталог включен. Вы должны обнаружить, что это не текущее имя компьютера.
Если вы используете bash (оболочка по умолчанию в macOS), по умолчанию он отправляет управляющую последовательность в терминал при каждом запросе, чтобы сообщить Терминалу текущий рабочий каталог. Поскольку управляющие последовательности могут поступать с локальных или удаленных компьютеров, он отправляет URL-адрес схемы «file:», включающий имя хоста, и Terminal проверяет, что имя отображается на текущий компьютер. Если это не так, Терминал отключает элементы всплывающего меню пути, потому что они не соответствуют локальным каталогам.
Вы можете увидеть код, который отправляет управляющую последовательность /etc/bashrc_Apple_Terminal
(или /etc/bashrc
в более старых версиях macOS).
[Обратите внимание, что если вы не используете bash или настроили его так, чтобы поведение по умолчанию не возникало, но ваша оболочка (или другая запущенная вами программа) отправляет управляющие последовательности для установки окна или вкладки ( icon) title, Терминал проверит его на предмет наличия того, что выглядит как имя пути, а затем проверит, соответствует ли это действительному локальному пути. Если нет, то он вообще не отображает значок прокси окна.]
Сценарий, в котором Терминал может не распознать, что URL-адрес «file:» находится на текущем хосте, - это если вы измените конфигурацию сети во время работы оболочки. Распространенным случаем является перевод портативного компьютера в спящий режим и его перемещение в другое место, а затем его пробуждение. Имя и адрес локального хоста будут изменены, но $HOSTNAME
переменная окружения оболочки по- прежнему имеет старое имя хоста, и это то, что она отправляет в управляющей последовательности. Чтобы это исправить, обновите переменную среды:
HOSTNAME=$(hostname)
В другом сценарии вы выходите из Терминала, меняете настройки сети, затем открываете Терминал с включенным Возобновлением. Терминал восстановит окна и вкладки вместе с последним URL рабочего каталога, который был отправлен каждому. Если вы $HOSTNAME
столкнетесь с этим случаем, он будет в курсе - поскольку он запускает новую оболочку - но у Терминала все еще может быть устаревший URL, пока вы не получите оболочку для его обновления. Если отображение командной строки не решает проблему, попробуйте изменить каталоги с помощью, cd
чтобы оболочка обновила ее.