418 votos

¿Cómo puedo crear un enlace simbólico en el Terminal?

¿Qué comando se utiliza para crear un enlace simbólico/soft link?

644voto

siva Puntos 23
 ln(1) link, ln -- make links
    Create a symbolic link.
                             the optional path to the intended symlink
                               if omitted, symlink is in . named as destination
                               can use . or ~ or other relative paths

ln -s /path/to/original /path/to/symlink

               the path to the original file/folder
                  can use . or ~ or other relative paths

$ echo content > original
$ ln -s original symlink
$ ls -la original symlink
-rw-r--r--  1 grgarside  staff    8 28 Jan 18:44 original
lrwxr-xr-x  1 grgarside  staff    8 28 Jan 18:44 symlink -> original
$ cat symlink
content

Para más información sobre ln(1), véase el página de manual .

La ruta del enlace simbólico es opcional; si se omite, ln por defecto hace un enlace con el mismo nombre que el destino, en el directorio actual:

$ cd ~/Documents
$ ln -s ../Pictures
$ ls -l Pictures
lrwxr-xr-x  1 user  staff  11 Feb  1 17:05 Pictures -> ../Pictures

Para crear un enlace simbólico que sustituya a un directorio del sistema (por ejemplo, si quiere tener /Users apuntando a otra unidad de disco), necesita desactivar la protección de la integridad del sistema . Puede volver a habilitarlo después de configurar el enlace simbólico.

79 votos

Si las páginas de manual fueran tan claras como tu respuesta.

0 votos

Permiso denegado :S ¿puede darme una pista? tratando de crear symlink para los usuarios para que pueda utilizarlo en otro disco duro y ssd tiene sólo symlink. gracias.

0 votos

@Ewoks /Users está protegido por SIP. Usted puede desactivar la protección de la integridad del sistema para configurar el enlace simbólico (y volver a activarlo después si lo desea). He añadido esto a la respuesta.

90voto

El comando se llama ln . Si se utiliza con la opción -s creará un enlace simbólico en el directorio actual:

ln -s /any/file/on/the/disk linked-file

3 votos

¿Tiene que existir primero el archivo vinculado? Obtengo un error de archivo no encontrado en el destino.

3 votos

El archivo no (se obtiene un mensaje de error si lo hace), pero todos los directorios en cualquier ruta. Si te quedas atascado, no dudes en hacer una nueva pregunta usando el botón de Pregunta en la parte superior derecha. Incluya un enlace a esta pregunta para proporcionar contexto.

0 votos

El enlace simbólico no debe existir antes de ejecutar este comando. Pero, por lo que sé, se requiere una ruta válida. Si la carpeta del archivo de salida no existe antes de ejecutar este comando, obtendrá No such file or directory error también.

39voto

Benny Chang Puntos 49

Sé que esta pregunta se refiere explícitamente a la Terminal, pero si estás en la Tierra de la GUI y no quieres entrar en la Tierra de la Terminal, puedes usar SymbolicLinker . Esto pone una opción de "Hacer enlace simbólico" en su menú de Servicios en el Finder.

A context menu for a folder, showing a "Services" submenu, with "Make Symbolic Link" hilighted

A context menu for a symbolic link, with "Make Symbolic Link" hilighted

3 votos

Me encantaría saber por qué ha sido descalificado para poder responder con más calidad a partir de ahora :)

13 votos

Probablemente porque la pregunta era "¿Cómo puedo crear un enlace simbólico en Terminal?" Pero no estoy downvoting usted :)

0 votos

¿Significa esto que simplemente no hay manera de hacer esto desde el Mac Gui sin ¿instalar software? Además, no puedo evitar pensar que esto se podría haber hecho con Automator.

33voto

solarnz Puntos 473

Es sólo ln -s <source> <destination> .

6voto

Techlands Puntos 18

ln -s /some/dir/ ~/Desktop/dir

También puede crear un enlace simbólico para el directorio utilizando el mismo comando

ln -s "$(pwd)" ~/Desktop/dir

Para crear un enlace simbólico al directorio actual en el que se encuentra.

4 votos

Una simple . (punto) dará el pwd. No se necesitan argumentos extravagantes :)

0 votos

¡@mylogon jajaja me gusta pensar demasiado a veces. simplificado mi respuesta!

0 votos

@mylogon me acabo de dar cuenta . no funciona en MacOS. no probar en linux todavía. usando ./ dio lugar a este foo -> ./foo que se señala a sí misma.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X