GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué no funciona mi enlace simbólico?

A los enlaces simbólicos les suelen gustar las rutas completas o relativas al enlace; de ​​lo contrario, a menudo pueden estar buscando file-1.txt localmente (por extraño que parezca).

Navega a proper y ejecuta ls -l y puede ver que el enlace simbólico está buscando actual/file-1.txt , cuando debería ser ../actual/file-1.txt .

Así que tienes dos opciones:

  1. Dar la ruta completa

    ln -s ~/actual/file-1.txt ~/actual/file-2.txt ~/proper
    
  2. Navegue a la carpeta en la que desea que esté el enlace y enlace desde allí

    cd proper
    ln -s ../actual/file-1.txt ../actual/file-2.txt ./
    

Editar :Una sugerencia para evitar escribir.

Podrías simplemente hacer ln -s ~/actual/file-{1,2}.txt ~/proper

Los elementos entre llaves se sustituyen y se colocan uno tras otro, creando el comando

    ln -s ~/actual/file-1.txt ~/actual/file-2.txt ~/proper
    

que vincula ambos archivos al directorio de destino. Ahorra algo de escritura importante a medida que avanza en el shell.


El problema es el uso de rutas relativas. Si especifica la creación de su enlace con la ruta explícita completa, funciona.

$ ln -s ~/actual/archivo1.txt ~/actual/archivo2.txt ~/propio/

$ gato propiamente dicho/archivo1.txt

archivo 1

$

Tu ejemplo crea enlaces en proper que buscan un subdirectorio llamado actual bajo el directorio actual, en lugar de su padre previsto de ambos.


Los enlaces simbólicos pueden ser complicados. En esencia, un enlace simbólico es un archivo que contiene un nombre de archivo/ruta para otro archivo (y que está marcado para un tratamiento especial). Si el nombre de ruta en el archivo de enlace comienza con '/ ', entonces se trata como un nombre de ruta absoluto, y las cosas son bastante sencillas. Si no comienza con una barra inclinada, se trata como un nombre de ruta relativo, relativo al directorio donde se encuentra el enlace. (Esto es cierto ya sea que el nombre contenga o no barras). Entonces, creó proper/file–1.txt como enlace a “actual/file–1.txt ”, y cuando intentó acceder a él, el sistema intentó acceder a proper/actual/file–1.txt . Deberías haber dicho

ln –s  ../actual/file–1.txt  ../actual/file–2.txt  proper

Por cierto, no necesitabas el touch comandos echo "file 1" > actual/file–1.txt es suficiente para crear actual/file–1.txt .


Linux
  1. ¿Convertir un enlace duro en un enlace simbólico?

  2. ¿El enlace simbólico no funciona como se esperaba cuando cambia de usuario?

  3. ¿Por qué `exit &` no funciona?

  4. ¿Cómo comprimir un enlace simbólico?

  5. ¿Cómo muevo un enlace simbólico relativo?

LD_LIBRARY_PATH no parece funcionar

¿Por qué `\d` no funciona en expresiones regulares en sed?

¿Por qué mi enlace simbólico crea un archivo y no una carpeta?

¿Por qué el nombre de host --fqdn no funciona en mi computadora con Ubuntu?

chmod no funciona

¿Por qué a gdb no le gustan los alias?