¿Cómo crear un enlace suave o simbólico?


Respuestas:


666

Ver man ln.

Para crear un enlace simbólico en el /usr/bin/barque haga referencia al archivo original /opt/foo, use:

ln -s /opt/foo /usr/bin/bar

Debería aplicar el comando anterior como root (es decir, con sudo).


Estoy usando: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineobteniendo error:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
La documentación de Ubuntu dice "Crea enlaces duros por defecto, enlaces simbólicos con --symbolic". ¿La solución anterior creará un enlace simbólico como lo solicitó OP?
Tanay

44
Pensé que César quería poner sus archivos en / opt y / usr / bin para tener el enlace simbólico, no al revés.
accidente

44
@mishap tiene razón en lo que a mí respecta. Es al revés.
Daniel Szmulewicz

2
@kevinmicke después de que su explicación finalmente se diera cuenta de que la explicación de la respuesta se indicó en orden inverso a la orden, haciendo que mi cerebro (y el de otros) la leyeran al revés
Andrew


21

Si el ejecutable 'p4v' está en / opt / bin / p4v, simplemente puede ejecutar:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

Sería mejor agregar / opt / bin (o donde sea que esté el ejecutable) a su ruta:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset

~/.profileSería mejor para la configuración $PATH.
Lekensteyn

puede editar /etc/environmentpara modificar el sistema PATH en todo el sistema.
Michał Šrajer

4

Verifique la ubicación del software con esto.

which application-name #replace for the application you are looking for

por ejemplo

which skype

La salida será esta.

/usr/bin/skype 

Para crear el enlace suave. por ejemplo, desea crear el enlace suave para skypeen su escritorio

ln -s /usr/bin/skype ~/Desktop/

Para más información sobre ln.

man ln

o

ln --help

2
ln -s -n ./TargetDirectory ./Nickname

Tenga en cuenta que esto funciona si ambos nodos están debajo de usted en el mismo árbol. Puedes usar notación relativa

  • -s comando lo convierte en un enlace simbólico
  • -n hace posible crear un enlace simbólico tipo carpeta

Bienvenido a askubuntu.com. En este caso, $indicar una línea de comando es una opción de estilo y no es probable que sea un problema. Sin embargo, tenga en cuenta que incluir cosas en un bloque de código que no sea el código y su salida puede causar confusión.
J. Starnes

1

Esta plantilla fue más útil para mí que las respuestas anteriores. Probablemente no más correcto, solo menos ofuscado:

ln -s <path/to/real/file-or-folder> <symlink path>

Simplemente reemplace las partes en <>'s


0

Si está diciendo target is not a folder, significa que hay espacios en los nombres de sus carpetas, por ejemplo: New Foldertiene un espacio

Debe editar la ruta y agregar una barra diagonal inversa \después de cada espacio en las rutas

p.ej:

ln -s /opt/bin /usr/var/New\ Folder

3
Esta no es una respuesta a la pregunta de los OP. Espere hasta tener suficiente reputación para agregar comentarios.
derHugo

0

He descubierto que es más fácil ir a donde desea que esté el enlace y luego crear el enlace usando sudo ln -s /path/to/source/file, en lugar de hacerlo ln -s target source.

Entonces en tu caso lo haría cd /usr/binentonces sudo ln -s /opt/bin/pv4. La otra forma no ha estado funcionando en mi caso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.