¿Por qué el icono de carpeta en mi Terminal tiene un signo de interrogación superpuesto?

16

De vez en cuando, veo que el icono de la carpeta en la barra de título de una de mis ventanas de Terminal tiene un signo de interrogación superpuesto, por ejemplo, este:

ingrese la descripción de la imagen aquí

¿Qué significa esto? No parece tener ningún efecto o problema que haya notado, solo tengo curiosidad.

Estoy usando OS X 10.8 (Mountain Lion).

Andrew Ferrier
fuente

Respuestas:

18

El signo de interrogación (y los elementos del menú emergente deshabilitados) indican que Terminal cree que el directorio de trabajo está en una computadora remota y, por lo tanto, no puede navegar a él en Finder usando el menú emergente. Si observa el último elemento en el menú emergente (Comando + clic en el icono "proxy") verá la computadora / host en el que Terminal cree que está el directorio de trabajo. Debes encontrar que no es el nombre actual de la computadora.

Si está utilizando bash (el shell predeterminado en macOS), por defecto envía una secuencia de control al terminal en cada solicitud para indicarle a Terminal el directorio de trabajo actual. Dado que las secuencias de control pueden provenir de computadoras locales o remotas, envía una URL de esquema "archivo:" que incluye el nombre de host, y Terminal verifica que el nombre se asigne a la máquina actual. Si no lo hace, Terminal deshabilita los elementos del menú emergente de la ruta, ya que no se corresponden con los directorios locales.

Puede ver el código que envía la secuencia de control en /etc/bashrc_Apple_Terminal(o /etc/bashrcen versiones anteriores de macOS).

[Tenga en cuenta que si no está usando bash, o lo ha personalizado para que no ocurra el comportamiento predeterminado, pero su shell (o algún otro programa que esté ejecutando) está enviando secuencias de control para establecer la ventana o pestaña ( icono) título, Terminal lo examinará para ver si contiene lo que parece un nombre de ruta, y luego verificará si corresponde a un nombre de ruta local válido. Si no, no muestra el ícono de proxy de ventana en absoluto.]

Un escenario en el que Terminal no puede reconocer que la URL "file:" está en el host actual es si cambia la configuración de su red mientras se ejecuta un shell. Un caso común es poner una computadora portátil en reposo y trasladarse a otra ubicación, luego despertarla. El nombre y la dirección del host local habrán cambiado, pero la $HOSTNAMEvariable de entorno del shell todavía tiene el nombre del host anterior, y eso es lo que envía en la secuencia de control. Para solucionar esto, actualice la variable de entorno con:

 HOSTNAME=$(hostname)

Otro escenario es donde cierra Terminal, cambia las configuraciones de red y luego abre Terminal con Reanudar habilitado. Terminal restaurará las ventanas y pestañas, junto con la última URL del directorio de trabajo que se envió cada una. Si se encuentra con este caso, $HOSTNAMEestará actualizado, ya que inicia un nuevo shell, pero Terminal aún puede tener una URL obsoleta hasta que obtenga el shell para actualizarlo nuevamente. Si mostrar el símbolo del sistema no soluciona el problema, intente cambiar los directorios con cdpara que el shell lo actualice.

Chris Page
fuente