Quiero hacer un enlace simbólico en Linux. He escrito este comando Bash donde la primera ruta es la carpeta a la que quiero vincular y la segunda ruta es la fuente compilada.
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
¿Es esto correcto?
Respuestas:
Para crear un nuevo enlace simbólico (fallará si el enlace simbólico ya existe):
Para crear o actualizar un enlace simbólico:
fuente
ln
sintaxis es similar a lacp
sintaxis, por ejemplo, el destino de origen .cp
esCoPy
,ln
esLiNk
. Primera y tercera letra.Donde el lo
-s
hace simbólico.fuente
unlink LINK_NAME
ln -s where-the-symlink-should-point where-to-place-the-symlink-itself
.rm
, pero la mayoría de las personas no saben cómo eliminar el final/
.fuente
Puedes echar un vistazo a la página de manual aquí:
http://linux.die.net/man/1/ln
fuente
(Porque una imagen ASCII vale más que mil caracteres).
Una flecha puede ser un mnemotécnico útil, especialmente porque así es casi exactamente como se ve en la dirección de Emacs.
Y una imagen general para que no se confunda con la versión de Windows
Linux:
Ventanas:
También puedes ver esto como
El
from-here
no debería existir, sin embargo, que se va a crear, mientras que elto-here
ya debería existir (IIRC).(Siempre me confundo sobre si varios comandos y argumentos deben involucrar una ubicación preexistente o una que se haga).
EDITAR: Todavía se está hundiendo lentamente para mí; Tengo otra forma de escribir en mis notas.
fuente
dired
, es súper fácil, ya que coloca el cursor sobre su objetivo, presionaS
y escribe el directorio donde desea que se cree el enlace. Acorta la brecha entre imaginar el resultado deseado y escribir. Ver gnu.org/software/emacs/manual/html_node/emacs/… .http://unixhelp.ed.ac.uk/CGI/man-cgi?ln
fuente
man ln
, que lo llamaln -s TARGET LINK_NAME
A la pregunta original:
De hecho, esto creará un enlace simbólico (
-s
) del archivo / directorio:a tu nuevo enlace
Aquí hay algunas maneras de ayudarlo a recordar:
Primero, está la página
ln
del manual para . Puede acceder a esto buscando "man ln" en google, o simplemente abra una ventana de terminal y escribaman ln
y obtendrá la misma información. La página del manual dice claramente:Si tener que buscar o leer una página de manual cada vez no es para usted, tal vez le resulte más fácil recordar que todos los comandos nix funcionan de la misma manera:
cp
copia un archivo que existe actualmente (el primer argumento) en un nuevo archivo (el segundo argumento).mv
mueve un archivo que existe actualmente (el primer argumento) a un nuevo lugar (el segundo argumento)Del mismo modo,
ln
vincula un archivo que existe actualmente (el primer argumento) a un nuevo enlace (el segundo argumento) *La última opción que me gustaría sugerir es que puede crear sus propias páginas de manual que sean fáciles de leer y fáciles de encontrar / recordar. Simplemente haga un script de shell simple que le brinde la pista que necesita. Por ejemplo ♦ :
En su archivo .bash_aliases puede colocar algo como:
Luego, cuando lo necesite, desde la línea de comandos simplemente escriba
cmds
y obtendrá la sintaxis adecuada de manera que pueda leerla y comprenderla rápidamente. Puede hacer que estas funciones sean tan avanzadas como desee para obtener la información que necesita, depende de usted. Incluso podría hacerlos interactivos para que solo tenga que seguir las indicaciones ... algo como:* - bueno, obviamente, todos pueden tomar diferentes parámetros y hacer cosas diferentes y pueden trabajar en archivos y directorios ... pero la premisa es la misma
♦ - ejemplos que usan el shell bash
fuente
fuente
Creación de enlaces simbólicos o enlaces blandos en Linux:
Abra el indicador de Bash y escriba el comando mencionado a continuación para hacer un enlace simbólico a su archivo:
A) Vaya a la carpeta donde desea crear un enlace suave y escriba el comando como se menciona a continuación :
B) Pase a la ruta de su nuevo nombre de archivo y escriba :
$ ls -lrt (To see if the new-file is linked to the file or not)
Ejemplo:
fuente
ln -s sourcepath linkpathname
Nota:
-s crea enlaces simbólicos en lugar de enlaces duros
fuente
Si está en el directorio donde desea crear un enlace simbólico, ignore la segunda ruta.
Creará un enlace simbólico en el
target
interiormyfolder
.Sintaxis general
fuente
Este es el desbordamiento de pila, así que supongo que quieres código:
Todo el código siguiente asume que desea crear un enlace simbólico llamado
/tmp/link
enlaces a ese/tmp/realfile
.PRECAUCIÓN : ¡Aunque este código verifica si hay errores, NO verifica si
/tmp/realfile
realmente existe! Esto se debe a que un enlace inactivo sigue siendo válido y, dependiendo de su código, es posible que (raramente) desee crear el enlace antes del archivo real.Shell (bash, zsh, ...)
Muy simple, tal como lo haría en la línea de comando (que es el shell). Todo el manejo de errores lo realiza el intérprete de shell. Este código supone que tiene un intérprete de shell en funcionamiento
/bin/sh
.Si es necesario, aún podría implementar su propio manejo de errores utilizando la
$?
variable que solo se establecerá en 0 si el enlace se creó correctamente.C y C ++
symlink
solo devuelve 0 cuando se puede crear el enlace. En otros casos, estoy usandoperror
para contar más sobre el problema.Perl
Este código supone que tiene un intérprete perl 5 en
/usr/bin/perl
.symlink
solo devuelve 1 si se puede crear el enlace. En otros casos, estoy imprimiendo el motivo del error en la salida de error estándar.fuente
Me gustaría presentar una versión más sencilla en inglés de las descripciones ya presentadas.
El comando "ln" crea un archivo de enlace, y el "-s" especifica que el tipo de enlace será simbólico. Se puede encontrar un ejemplo de un archivo de enlace simbólico en una instalación WINE (usando "ls -la" para mostrar una línea del contenido del directorio):
El material de información de archivo estándar está a la izquierda (aunque tenga en cuenta que el primer carácter es una "l" para "enlace"); el nombre del archivo es "a:" y el "->" también indica que el archivo es un enlace. Básicamente le dice a WINE cómo se debe asociar la "Unidad A:" de Windows con una unidad de disquete en Linux. Para crear realmente un enlace simbólico SIMILAR a eso (en el directorio actual, y hacer esto realmente para WINE es más complicado; use la utilidad "winecfg"):
fuente
Para crear un enlace simbólico / enlace suave, use:
p.ej:
fuente
Hay dos tipos de enlaces:
enlaces simbólicos: consulte una ruta simbólica que indica la ubicación abstracta de otro archivo
enlaces duros: consulte la ubicación específica de los datos físicos.
En su caso, los enlaces simbólicos:
puede consultar http://man7.org/linux/man-pages/man7/symlink.7.html
puedes crear enlaces demasiado duros
Un enlace fijo a un archivo no se puede distinguir de la entrada del directorio original; cualquier cambio en un archivo es efectivamente independiente del nombre utilizado para hacer referencia al archivo. Los enlaces duros normalmente no se refieren a directorios y pueden no abarcar sistemas de archivos.
fuente
Los enlaces son básicamente de dos tipos:
Enlaces simbólicos (soft): enlace a una ruta simbólica que indica la ubicación abstracta de otro archivo
Enlaces duros: enlace a la ubicación específica de datos físicos.
Ejemplo 1:
Lo anterior es un ejemplo de un enlace duro donde puede tener una copia de sus datos físicos.
Ejemplo 2
El comando anterior creará un enlace simbólico a file1.txt.
Si elimina un archivo de origen, no tendrá nada en el destino en software.
Cuando tu lo hagas:
ls -lai
Verá que hay un número de inodo diferente para los enlaces simbólicos.
Para obtener más detalles, puede leer la página de manual de ln en su sistema operativo Linux.
fuente
hard link where you can have a copy of your physical data
- Creo que no creamos copias de datos físicos. Solo otro nombre para los mismos datos físicos.Encuentro un poco confuso las terminologías "objetivo" y "directorio" en la información del hombre.
El objetivo es la carpeta a la que estamos simpatizando y el directorio el enlace simbólico real (no el directorio al que simulará), si alguien está experimentando la misma confusión, no se sienta solo.
Esta es mi interpretación de crear un enlace simbólico (en Linux):
Puede navegar a la carpeta donde desea crear el enlace simbólico y ejecutar el comando o especificar la RUTA COMPLETA para su enlace simbólico en lugar de NAME-OF-YOUR-SYMLINK.
O
Espero que esto ayude a aquellos (todavía) ligeramente confundidos.
fuente
Cómo crear un enlace simbólico en vagabundo. Pasos:
fuente