¿Existe un nombre aceptado para hacer referencia a ~/ rutas?

¿Existe un nombre aceptado para hacer referencia a ~/ rutas?

¿Existe un nombre aceptado para hacer referencia al directorio de inicio ~/rutas?

Mientras buscaba la respuesta encontré publicaciones que utilizan una variedad de términos:

  • ~/ sintaxis
  • ~/ caminos
  • ~/ rutas expandidas
  • ~/ notación

Pero no pude encontrar ningún término consistente y conveniente para usar ~/ rutas de sintaxis y que pueda usarse para distinguirlas de una ruta absoluta completa o una ruta relativa.

Tenga en cuenta que soy consciente de que ~/ paths son rutas absolutas porque el shell las expande; es una forma conveniente de referirme a ellas que busco.

Respuesta1

~/es sólo uno de varios mágicos "Expansiones de tilde". Las expansiones de tilde están particularmente asociadas con shells UNIX. A diferencia de$HOME las expansiones de tilde, no se entienden universalmente y pueden variar de shell a shell. El único punto en común es la adherencia al estándar POSIX (en su mayor parte), y según Wikipedia, el estándar de shell POSIX es basado en un "subconjunto estricto" de Korn Shell, un derivado de Bourne Shell. Los descendientes de Bourne Shell incluyen en particular bash y zsh.Esto es lo que dice POSIX sobre Tilde Expansions:

Un "prefijo de tilde" consta de un carácter sin comillas al principio de una palabra, seguido de todos los caracteres que preceden al primero sin comillas de la palabra, o todos los caracteres de la palabra si no hay . En una asignación (consulte Asignación de variables XBD), se pueden utilizar varios prefijos de tilde: al principio de la palabra (es decir, después de la asignación), después de cualquier sin comillas, o ambos. Un prefijo de tilde en una tarea termina con el primer prefijo sin comillas o . Si ninguno de los caracteres del prefijo de tilde está entre comillas, los caracteres del prefijo de tilde que siguen a se tratan como un posible nombre de inicio de sesión de la base de datos del usuario. Un nombre de inicio de sesión portátil no puede contener caracteres fuera del conjunto proporcionado en la descripción de la variable de entorno LOGNAME en Otras variables de entorno de XBD. Si el nombre de inicio de sesión es nulo (es decir, el prefijo de tilde contiene solo la tilde), el prefijo de tilde se reemplaza por el valor de la variable HOME. Si HOME no está configurado, los resultados no se especifican. De lo contrario, el prefijo de tilde se reemplazará por un nombre de ruta del directorio de trabajo inicial asociado con el nombre de inicio de sesión obtenido usando la función getpwnam() como se define en el volumen Interfaces del sistema de POSIX.1-2008. Si el sistema no reconoce el nombre de inicio de sesión, los resultados no están definidos.

El nombre de ruta resultante de la expansión de tilde se tratará como si estuviera entre comillas para evitar que se altere mediante la división de campos y la expansión del nombre de ruta.

Básicamente, eso significa ~que proporciona $HOME y ~foo/enlaces aldirectorio de trabajo inicialdel usuario foo. Aproximadamente, pero no siempre, se refiere al directorio de inicio de foo. (la única excepción que se me ocurre es root)

En BaSH no se adhieren a ese estándar para las expansiones de tilde enalgunas maneras, ninguno particularmente significativo. BaSH también tiene otras divertidas expansiones de tilde,enlacecortesía del comentarista @phk. ¡Puedes coleccionarlos todos!


Pero yo divago. Si estamos hablando de cómo se llama ~/, no estoy seguro si te estás refiriendo al término para la ruta en sí (de la forma ~/x/y/z) o para el fenómeno de usar ~/para hacer dicha ruta (es decir, obra de arte versus arte). , derivada vs diferenciación). Porque ~/ pathsy ~/ expanded pathsparecen referirse al primero y ~/ syntaxal ~/ notationsegundo. Probablemente estoy complicando demasiado, pero el lenguaje es algo voluble. Por ejemplo, ~/ pathsenfatiza la forma de las rutas que comienzan con ~/, mientras que ~/ extended pathsenfatiza la función ~/que se realiza para crear la ruta de esa forma.

De todos modos, probablemente ya te habrás dado cuenta de que

no hay ningún nombre aceptado

ya que todos esos términos están en circulación y el tema no ha recibido atención oficial que sepamos por parte de los poderes fácticos. O para decirlo de otra manera, todos esos términos son formas de describir lo mismo, no etiquetas que compiten entre sí. No tienen un nombre formal, pero cualquiera que sepa un poco de bash reconocerá inmediatamente lo que significan, y si la gente entiende de qué estás hablando, ¿a quién le importa cómo lo llames? Puedes decidir por ti mismo qué término te gusta. Personalmente me gusta ~/ paths, pronunció."rutas de tilde y barra". Y para referirse a los fenómenos"taquigrafía de ruta de tilde y barra". Para ser honesto, ni siquiera creo que necesiten un nombre...

información relacionada