Necesito un enlace simbólico que se resuelva en relación con el directorio en el que se encuentra. ¿Qué comando se usa para crear tal cosa?
linux
command-line
symbolic-link
Jeremiah Rose
fuente
fuente
ln -s ../some/other/file /some/dir/linkname
ln -s ./file linkname
ya que se.
refiere al directorio actual.ln -s somedir/original-dir link-name
No funciona. Crea un directorio con nombrelink-name
que contiene un enlace no válido. El comando que funciona esln -sr somedir/original-dir link-name
Las versiones recientes de GNU coreutils 'ln (> = 8.16) admiten la opción
--relative
(o-r
), lo que significa que puede llamarln -s
con 2 rutas absolutas o relativas (con respecto a su directorio de trabajo) y descubrirá la ruta relativa correcta que debe ser escrito en el enlace simbólico.fuente
-r
opción es útil cuando realiza una compilación cruzada y necesita rutas absolutas en el host de compilación, pero rutas relativas en el destino.ln -r -s targetfile myalias
puede ayudarte a solucionarloLo que necesita comprender es básicamente que un enlace simbólico se parece más a un archivo de texto que a una entrada de directorio que contiene un archivo. Así que si usted
entonces eso es bastante similar a
Al sistema no le importa si
/file/../poo
existe, es solo un fragmento de texto que se coloca en el enlace simbólico. Cuando algo intenta abrir el enlace simbólico, es cuando el sistema intenta resolverlo.Si está utilizando un shell con finalización de nombre de archivo, esta característica puede confundir las cosas al permitirle completar un nombre de archivo relativo a su directorio de trabajo actual, incluso si luego termina usando eso como el objetivo de un enlace simbólico en otro directorio completamente diferente.
fuente
<
cambiar la forma en la memoria del sistema asignada. Por supuesto, no hay un nombre de archivo<
en ese directorio, es solo una forma barata de crear un archivo muy pequeño que tiene algunas propiedades atractivas sobre un archivo de texto normal en esa plataforma en particular.Los enlaces relativos fueron difíciles para mí en OS X, es decir
ambos no funcionaron (se creó algo pero no era un directorio). Creé el enlace deseado usando rutas absolutas .
fuente
ln -s Dropbox/git/codyhess/bin ~/bin
Solo quería explicar más a fondo cómo crear un enlace simbólico utilizando rutas relativas (con un ejemplo detallado).
Como Ignacio Vazquez-Abrams mencionó en los comentarios, debe especificar la ubicación del archivo / carpeta en relación con el lugar donde se creará el enlace simbólico, no en relación con su directorio actual.
EJEMPLO
Estás en
/usr/share/nginx/html/_src/learn
Crearás un enlace simbólicocoding
en/usr/share/nginx/html
Crear enlace simbólico relativo (teoría):
Crear enlace simbólico relativo real:
Más información (mismo ejemplo)
fuente