¿Qué comando se usa para crear un enlace simbólico/enlace suave?
┌── 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 obtener más información acerca de ln(1), consulte la página de manual .
La ruta al enlace simbólico es opcional; si se omite, ln
por defecto crea 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 para reemplazar un directorio del sistema (por ejemplo, si desea /Users
apuntar a otra unidad de disco), debe deshabilitar la Protección de integridad del sistema . Puede volver a habilitarlo después de configurar el enlace simbólico.
El comando se llama ln
. Si se usa con la opción -s
, creará un enlace simbólico en el directorio actual:
ln -s /any/file/on/the/disk linked-file
No such file or directory
error.ls
(por costumbre) en lugar de ln
! (asegúrate de comprobarlo)Sé que esta pregunta se refiere explícitamente a la Terminal, pero si está en GUI Land y no desea ingresar a Terminal Land, puede usar SymbolicLinker . Esto coloca la opción "Crear enlace simbólico" en el menú Servicios del Finder.
Command
+ Option
mientras arrastras un archivo... actualizaré la respuesta más tardeln -s <source> <destination>
es solo
ln -s /some/dir/ ~/Desktop/dir
También puede crear un enlace simbólico para el directorio usando el mismo comando
ln -s "$(pwd)" ~/Desktop/dir
Para crear un enlace simbólico al directorio actual en el que se encuentra.
.
(punto) dará la pwd. No se necesitan argumentos sofisticados :).
no funciona en macOS. no probé en linux todavía. usando ./
dio como resultado esto foo -> ./foo
que apunta a sí mismo.Como advertencia para cualquier persona, debe usar nombres de ruta completos . Esto no me quedó claro de inmediato, ya que sentí que podía vincular rutas relativas en una carpeta en la que estaba ejecutando el comando. Podría estar equivocado (soy un novato en macOS).
Por ejemplo, si trato de vincular mi carpeta de Imágenes dentro de mi carpeta de Descargas, mientras estoy en el directorio de inicio de mi usuario , esto no funcionará:
Users\stevebauman >_ ln -s Pictures Downloads
En su lugar, debe utilizar:
Users\stevebauman >_ ln -s /Users/stevebauman/Pictures /Users/stevebauman/Downloads
A menos que la ruta de origen sea relativa a su destino, use una ruta absoluta a su ruta de origen y escríbala entre comillas simples
$ ln -s '/any file/could have (special chars)/or spaces/test' '/some/other place/file'
Siempre puede averiguar la ruta actual completa sin escape a algo yendo a esa carpeta en la terminal, luego escribiendo
$ pwd
Adrián Lynch
ewoks
grg
sin ladera
ln -s /Users /Users/myuser/all-users
funciona perfectamente. Solo necesita deshabilitar SIP si desea crear el enlace simbólico en una carpeta protegida por SIP (como lo haría si quisiera crear cualquier otra entrada de directorio allí).grg
sin ladera
grg
eduardo falk
ln -s "This directory is no longer in use" README
sería perfectamente legítimo y cualquiera que lo ejecutarals -l
vería el mensaje.Pedro W.
caramba
ln -s ./original/source/ ../path/to/symlink
, por lo que el.
operador realmente arruinó las cosas para mí usando la ruta completa con~
la solución.grg
./original/source/
; Yooriginal/source
usaríaToby Mellor