Perché l'icona della cartella sul mio terminale ha un punto interrogativo sovrapposto?

14

Di tanto in tanto, noto che l'icona della cartella nella barra del titolo di una delle finestre del mio terminale ha un punto interrogativo sovrapposto, ad es. questo:

Che cosa significa? Non sembra avere alcun effetto o problemi che ho notato - sono solo curioso.

Sto usando OS X 10.8 (Mountain Lion).

    
posta Andrew Ferrier 23.12.2012 - 17:38
fonte

1 risposta

16

Il punto interrogativo (e le voci del menu popup disabilitato) indicano che Terminal pensa che la directory di lavoro si trovi su un computer remoto e pertanto non è possibile navigare in Finder utilizzando il menu popup. Se guardi l'ultimo elemento nel menu a comparsa (fai clic con il tasto Comando sull'icona "proxy") vedrai il computer / host che Terminal pensa che la directory di lavoro sia attiva. Dovresti scoprire che non è il nome attuale del computer.

Se stai usando bash (la shell predefinita su macOS), per impostazione predefinita invia una sequenza di controllo al terminale a ogni prompt per comunicare a Terminal la directory di lavoro corrente. Poiché le sequenze di controllo possono provenire da computer locali o remoti, invia un URL di schema "file:" incluso il nome host e Terminal verifica che il nome sia mappato alla macchina corrente. In caso contrario, Terminal disabilita le voci del menu popup del percorso, perché non corrispondono alle directory locali.

Puoi vedere il codice che invia la sequenza di controllo in /etc/bashrc_Apple_Terminal (o /etc/bashrc nelle versioni precedenti di macOS).

[Nota che se non stai usando bash, o lo hai personalizzato in modo che non si verifichi il comportamento predefinito, ma la tua shell (o qualche altro programma in esecuzione) sta inviando sequenze di controllo per impostare la finestra o il titolo della scheda (icona), Terminale lo esaminerà per vedere se contiene ciò che sembra un nome di percorso, e quindi controlla se corrisponde a un percorso locale valido. In caso contrario, non visualizza affatto l'icona del proxy della finestra.]

Uno scenario in cui Terminal non riesce a riconoscere che l'URL "file:" si trova sull'host corrente è se si modifica la configurazione di rete mentre è in esecuzione una shell. Un caso comune è quello di mettere un computer portatile a dormire e spostarsi in un'altra posizione, quindi svegliarlo. Il nome e l'indirizzo dell'host locale saranno cambiati, ma la variabile di ambiente $HOSTNAME della shell ha ancora il vecchio nome host e questo è ciò che invia nella sequenza di controllo. Per risolvere questo problema, aggiorna la variabile di ambiente con:

 HOSTNAME=$(hostname)

Un altro scenario è dove si esce da Terminal, si modificano le configurazioni di rete, quindi si apre Terminal con Resume abilitato. Terminal ripristinerà le finestre e le schede, insieme all'ultimo URL della directory di lavoro che è stato inviato. Se ci si imbatte in questo caso, $HOSTNAME sarà aggiornato, dal momento in cui viene avviata una nuova shell, ma Terminal può ancora avere un URL non aggiornato fino a quando la shell non la aggiornerà di nuovo. Se la visualizzazione del prompt dei comandi non risolve il problema, prova a cambiare directory con cd per far sì che la shell lo aggiorni.

    
risposta data 15.01.2013 - 14:22
fonte

Leggi altre domande sui tag