Estoy tratando de crear un enlace simbólico en mi directorio de inicio que apunte a un directorio en mi HDD externo.
Funciona bien cuando lo especifico así:
cd ~
ln -s /run/media/name/exhdd/Data/ Data
Sin embargo, crea un enlace defectuoso cuando intento esto:
cd /run/media/name/exhdd
ln -s Data/ ~/Data
Esto crea un enlace en el que no puedo cdentrar.
Cuando lo intento, bash se queja:
bash: cd: Data: Too many levels of symbolic links
El enlace simbólico de datos en mi casa también está coloreado en rojo cuando lsestá configurado para mostrar la salida en color.
¿Por qué está pasando esto? ¿Cómo puedo crear un enlace de esa manera? (Quiero crear un enlace simbólico a un directorio en mi directorio de trabajo en otro directorio).
Editar: de acuerdo con esta respuesta de StackOverflow, si el segundo argumento (en mi caso, que sería ~ / Data) ya existe y es un directorio,
lncreará un enlace simbólico al destino dentro de ese directorio.
Sin embargo, estoy experimentando el mismo problema con:
ln -s Data/ ~/

cd ~suele ser lo mismo quecd.ls -l ~/Datate habría ayudado a ver qué estaba mal con el enlace "rojo".catella, pero me olvidé de lo que fue el resultado ... (no estoy en casa en el momento en ellas.)/run/media/name/exhdd/Data/paraDataluego usar lo siguienteln -s /run/media/name/exhdd/Data/* DataRespuestas:
Esto es lo que está pasando. Si crea un enlace simbólico con una ruta relativa, el enlace simbólico será relativo. Los enlaces simbólicos solo almacenan los caminos que les das. Nunca resuelven caminos a caminos completos. Corriendo
crea un enlace simbólico llamado
ls2en el/usr/binquels(a saber./usr/bin/ls) en relación con el directorio que el enlace simbólico está en (/usr/bin). El comando anterior crearía un enlace simbólico funcional desde cualquier directorio.Si movió el enlace simbólico a un directorio diferente, dejaría de apuntar al archivo en
/usr/bin/ls.Está creando un enlace simbólico que apunta
Datay lo nombraData. Se está apuntando a sí mismo. Tienes que hacer un enlace simbólico con la ruta absoluta del directorio.fuente
Estaba teniendo el mismo problema. Google llevó a esta respuesta, pero la solución más simple no está documentada aquí:
-T hace el truco
hombre ln:
Simplemente agregue esto aquí para que cualquier persona con la misma pregunta pueda encontrar esto :)
fuente
lnEl comportamiento de las rutas relativas es poco intuitivo. Para restaurar la cordura, usa la-rbandera.Explicación:
Lo que significa es que
lnhará lo que esperas. Tendrá en cuenta en qué directorio se encuentra, en qué directorio se encuentra el objetivo, y construirá una ruta relativa al directorio en el que estará el enlace. El comportamiento predeterminado (sin-r) es interpretar el primer parámetro (objetivo) literalmente , en en cuyo caso debe construir la ruta usted mismo para que sea válida en el directorio del enlace.Alternativamente, use una ruta absoluta, como lo menciona @SmithJohn
o
fuente
Simplemente puede crear un enlace para una carpeta. Mira mi comando
ln -s / home / targatedfolder / var / www / html / link_name
fuente