Warum wird auf dem Ordnersymbol in meinem Terminal ein Fragezeichen angezeigt?

16

Von Zeit zu Zeit stelle ich fest, dass auf dem Ordnersymbol in der Titelleiste eines meiner Terminalfenster ein Fragezeichen eingeblendet ist, z. B. dieses:

Bildbeschreibung hier eingeben

Was bedeutet das? Es scheint keine Auswirkungen oder Probleme zu haben, die ich bemerkt habe - ich bin nur neugierig.

Ich verwende OS X 10.8 (Mountain Lion).

Andrew Ferrier
quelle

Antworten:

18

Das Fragezeichen (und deaktivierte Popup-Menüelemente) weisen darauf hin, dass sich das Arbeitsverzeichnis auf einem Remotecomputer befindet. Daher können Sie im Finder nicht über das Popup-Menü dorthin navigieren. Wenn Sie sich das letzte Element im Popup-Menü ansehen (Befehlstaste auf das Proxy-Symbol klicken), sehen Sie den Computer / Host, auf dem das Terminal das Arbeitsverzeichnis vermutet. Sie sollten feststellen, dass es nicht der aktuelle Name des Computers ist.

Wenn Sie bash (die Standardshell unter macOS) verwenden, wird standardmäßig bei jeder Eingabeaufforderung eine Steuersequenz an das Terminal gesendet, um Terminal das aktuelle Arbeitsverzeichnis mitzuteilen. Da Steuersequenzen von lokalen oder Remotecomputern stammen können, wird eine "file:" - Schema-URL einschließlich des Hostnamens gesendet, und das Terminal überprüft, ob der Name dem aktuellen Computer zugeordnet ist. Ist dies nicht der Fall, deaktiviert Terminal die Pfad-Popup-Menüelemente, da sie nicht den lokalen Verzeichnissen entsprechen.

Sie können den Code sehen, der die Steuersequenz in /etc/bashrc_Apple_Terminal(oder /etc/bashrcauf älteren Versionen von macOS) sendet .

[Beachten Sie, dass Ihre Shell (oder ein anderes Programm, das Sie ausführen) Steuersequenzen sendet, um das Fenster oder die Registerkarte festzulegen, wenn Sie Bash nicht verwenden oder es so angepasst haben, dass das Standardverhalten nicht auftritt. icon) title überprüft das Terminal, ob es einen Pfadnamen enthält, und prüft dann, ob dieser einem gültigen lokalen Pfadnamen entspricht. Andernfalls wird das Fenster-Proxy-Symbol überhaupt nicht angezeigt.]

Ein Szenario, in dem Terminal möglicherweise nicht erkennt, dass sich die URL "file:" auf dem aktuellen Host befindet, ist, wenn Sie Ihre Netzwerkkonfiguration ändern, während eine Shell ausgeführt wird. In der Regel wird ein tragbarer Computer in den Energiesparmodus versetzt, an einen anderen Ort versetzt und anschließend aufgeweckt. Der lokale Hostname und die Adresse haben sich geändert, aber die $HOSTNAMEUmgebungsvariable der Shell hat immer noch den alten Hostnamen und sendet diesen in der Steuerungssequenz. Um dies zu beheben, aktualisieren Sie die Umgebungsvariable mit:

 HOSTNAME=$(hostname)

In einem anderen Szenario beenden Sie Terminal, ändern die Netzwerkkonfigurationen und öffnen Terminal mit aktiviertem Resume. Das Terminal stellt die Fenster und Registerkarten zusammen mit der zuletzt gesendeten Arbeitsverzeichnis-URL wieder her. Wenn Sie auf diesen Fall $HOSTNAMEstoßen, sind Sie auf dem neuesten Stand, da eine neue Shell gestartet wird. Das Terminal kann jedoch eine veraltete URL haben, bis Sie die Shell zum erneuten Aktualisieren auffordern. Wenn das Problem durch Anzeigen der Eingabeaufforderung nicht cdbehoben werden kann , versuchen Sie, die Verzeichnisse mit zu ändern , damit die Shell das Problem aktualisiert.

Chris Page
quelle