Znak zapytania (i wyłączone elementy menu podręcznego) wskazuje, że Terminal myśli, że katalog roboczy znajduje się na komputerze zdalnym, a zatem nie można do niego nawigować w Finderze za pomocą menu podręcznego. Jeśli spojrzysz na ostatni element w wyskakującym menu (kliknij klawisz „Command” na ikonie „proxy”), zobaczysz komputer / host, na którym Terminal myśli, że katalog roboczy jest włączony. Powinieneś stwierdzić, że nie jest to bieżąca nazwa komputera.
Jeśli używasz bash (domyślna powłoka w systemie macOS), domyślnie wysyła sekwencję kontrolną do terminala przy każdym pytaniu, aby poinformować terminal o bieżącym katalogu roboczym. Ponieważ sekwencje kontrolne mogą pochodzić z komputerów lokalnych lub zdalnych, wysyła adres URL schematu „file:” zawierający nazwę hosta, a Terminal sprawdza, czy nazwa mapuje na bieżącą maszynę. Jeśli nie, Terminal wyłącza elementy menu podręcznego ścieżki, ponieważ nie odpowiadają one lokalnym katalogom.
Możesz zobaczyć kod, który wysyła sekwencję kontrolną w /etc/bashrc_Apple_Terminal(lub /etc/bashrcw starszych wersjach macOS).
[Pamiętaj, że jeśli nie używasz bash lub dostosowałeś go tak, aby domyślne zachowanie się nie pojawiało, ale twoja powłoka (lub inny uruchomiony program) wysyła sekwencje kontrolne w celu ustawienia okna lub karty ( ikona), Terminal zbada go, aby sprawdzić, czy zawiera coś, co wygląda jak nazwa ścieżki, a następnie sprawdzi, czy odpowiada to poprawnej lokalnej nazwie ścieżki. Jeśli nie, nie wyświetla w ogóle ikony proxy okna.]
Scenariusz, w którym terminal może nie rozpoznać, że adres URL „file:” znajduje się na bieżącym hoście, polega na zmianie konfiguracji sieci podczas działania powłoki. Częstym przypadkiem jest uśpienie komputera przenośnego i przeniesienie go w inne miejsce, a następnie wybudzenie go. Nazwa lokalnego hosta i adres ulegną zmianie, ale $HOSTNAMEzmienna środowiskowa powłoki wciąż ma starą nazwę hosta i to właśnie wysyła w sekwencji kontrolnej. Aby to naprawić, zaktualizuj zmienną środowiskową za pomocą:
HOSTNAME=$(hostname)
Innym scenariuszem jest wyjście z terminalu, zmiana konfiguracji sieci, a następnie otwarcie terminalu z włączoną funkcją Wznów. Terminal przywróci okna i karty wraz z ostatnim adresem URL katalogu roboczego, który został wysłany. Jeśli napotkasz ten przypadek, $HOSTNAMEbędzie aktualny - ponieważ uruchamia nową powłokę - ale Terminal może nadal mieć nieaktualny adres URL, dopóki powłoka nie zaktualizuje go ponownie. Jeśli wyświetlenie wiersza polecenia nie rozwiąże problemu, spróbuj zmienić katalogi za pomocą, cdaby powłoka go zaktualizowała.