Por que o ícone da pasta no meu terminal tem um ponto de interrogação sobreposto?

16

De vez em quando, percebo que o ícone da pasta na barra de título de uma das minhas janelas do Terminal tem um ponto de interrogação sobreposto, por exemplo, este:

insira a descrição da imagem aqui

O que isto significa? Parece não ter nenhum efeito ou problema que notei - só estou curioso.

Estou usando o OS X 10.8 (Mountain Lion).

Andrew Ferrier
fonte

Respostas:

18

O ponto de interrogação (e os itens de menu pop-up desabilitados) indicam que o Terminal acha que o diretório ativo está em um computador remoto e, portanto, não é possível navegar até ele no Finder usando o menu pop-up. Se você olhar o último item no menu pop-up (clique com o comando no ícone "proxy"), verá o computador / host em que o Terminal acha que o diretório ativo está. Você deve achar que esse não é o nome atual do computador.

Se você estiver usando o bash (o shell padrão no macOS), por padrão, ele envia uma sequência de controle ao terminal a cada prompt para informar ao Terminal o diretório de trabalho atual. Como as seqüências de controle podem vir de computadores locais ou remotos, ele envia uma URL do esquema "file:" incluindo o nome do host e o Terminal verifica se o nome é mapeado para a máquina atual. Caso contrário, o Terminal desativa os itens de menu pop-up do caminho, porque eles não correspondem aos diretórios locais.

Você pode ver o código que envia a sequência de controle /etc/bashrc_Apple_Terminal(ou /etc/bashrcnas versões anteriores do macOS).

[Observe que, se você não estiver usando o bash, ou o tiver customizado para que o comportamento padrão não ocorra, mas seu shell (ou outro programa em execução) está enviando sequências de controle para definir a janela ou a guia ( ícone), o Terminal examinará para ver se contém o que parece um nome de caminho e, em seguida, verifica se isso corresponde a um nome de caminho local válido. Caso contrário, ele não exibirá o ícone de proxy da janela.]

Um cenário em que o Terminal pode falhar ao reconhecer que a URL “file:” está no host atual é se você alterar a configuração da rede enquanto um shell estiver em execução. Um caso comum é colocar um computador portátil em suspensão e mudar para outro local e depois ativá-lo. O nome e o endereço do host local serão alterados, mas a $HOSTNAMEvariável de ambiente do shell ainda possui o nome do host antigo, e é isso que ele envia na sequência de controle. Para corrigir isso, atualize a variável de ambiente com:

 HOSTNAME=$(hostname)

Outro cenário é onde você sai do Terminal, altera as configurações de rede e abre o Terminal com o resumo ativado. O Terminal restaurará as janelas e as guias, juntamente com o último URL do diretório de trabalho que foi enviado. Se você se deparar com esse caso, $HOSTNAMEestará atualizado - desde que ele inicia um novo shell - mas o Terminal ainda pode ter um URL antigo até que o shell o atualize novamente. Se a exibição do prompt de comando não resolver o problema, tente alterar os diretórios cdpara que o shell o atualize.

Chris Page
fonte