verificar simbolicos simbolico remover listar link enlaces enlace eliminar editar crear carpeta linux symlink

linux - simbolicos - ln-v enlace simbolico



¿Cómo un enlace simbólico de un archivo en Linux? (17)

Quiero hacer un enlace simbólico en Linux. He escrito este comando de 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?


Creando enlaces simbólicos o soft-links en Linux:

Abra el indicador de Bash y escriba el comando mencionado a continuación para crear un enlace simbólico a su archivo:

A) Vaya a la carpeta donde desea crear un enlace flexible y escriba el comando como se menciona a continuación :

$ ln -s (path-to-file) (symbolic-link-to-file)

$ ln -s /home/user/file new-file

B) Vaya 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:

ls -lrt

lrwxrwxrwx 1 user user 24 Aug 6 23:40 new-file -> /home/user/file

Note: Where, A -> B Means, A is symbolically linked to B


(Porque una imagen ASCII vale más que mil caracteres).

Una flecha puede ser una mnemotécnica útil, sobre todo porque se ve casi exactamente como se ve en la dirección de Emacs.

Y el panorama general para que no se confunda con la versión de Windows

Linux:

ln -s target <- linkName

Windows:

mklink linkName -> target

También puedes ver estos como

ln -s "to-here" <- "from-here" mklink "from-here" -> "to-here"

El " from-here no debería existir todavía, se creará, mientras que el to-here ya debería existir (IIRC).

(Siempre me confundo si varios comandos y argumentos deben involucrar una ubicación preexistente, o una que se realizará).

EDIT: Todavía se está hundiendo lentamente para mí; Tengo otra forma en la que he escrito en mis notas.

ln -s (target exists) (link is made) mklink (link is made) (target exists)


A la pregunta original:

''ln -s ''+basebuild+''/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal''

De hecho, esto creará un enlace simbólico ( -s ) desde el archivo / directorio:

<basebuild>/IpDome-kernel/kernel

a tu nuevo enlace

/home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal

Aquí hay algunas maneras de ayudarte a recordar:

Primero, está la http://linux.die.net/man/1/ln del http://linux.die.net/man/1/ln . Puede acceder a esto a través de la búsqueda "man ln" en google, o simplemente abra una ventana de terminal y escriba man ln y obtendrá la misma información. La página de manual dice claramente:

En [OPCIÓN] ... [-T] OBJETIVO LINK_NAME (primera forma)

Si no tiene que buscar o leer una página de manual cada vez, quizás le resulte más fácil recordar que todos los comandos de Nix funcionan de la misma manera :

cp /file/that/exists /location/for/new/file mv /file/that/exists /location/its/moving/to ln /file/that/exists /the/new/link

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, 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 (para usted) de encontrar / recordar. Simplemente haga un script de shell simple que le dé la sugerencia que necesita. Por ejemplo :

En tu archivo .bash_aliases puedes colocar algo como:

commandsfx() { echo "Symlink: ln -s /path/to/file /path/to/symlink" echo "Copy: cp /file/to/copy /destination/to/send/copy" } alias ''cmds''=commandsfx

Luego, cuando lo necesite, desde la línea de comandos, simplemente escriba cmds y obtendrá la sintaxis correcta de manera que pueda leerlo y entenderlo rápidamente. Puede hacer estas funciones tan avanzadas como desee para obtener la información que necesita, depende de usted. Incluso puedes hacer que sean interactivos, así que solo tienes que seguir las indicaciones ... algo como:

makesymlink() { echo "Symlink name:" read sym echo "File to link to:" read fil ln -s $fil $sym } alias ''symlink''=makesymlink

* - 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 usando el shell bash


Cómo crear enlaces simbólicos en vagrant. Pasos:

  1. En vagrant file crea una carpeta sincronizada. eg config.vm.synced_folder "F: / Sunburst / source / sunburst / lms", "/ source" F: / Sunburst / source / sunburst / lms: - donde el código fuente, / source: - ruta del directorio dentro del vagrant
  2. Vagrant up y escriba vagrant ssh y vaya al directorio de origen, por ejemplo, cd source
  3. Verifique que su estructura de carpetas de código fuente esté disponible en el directorio de origen. por ejemplo, / source / local
  4. Luego, vaya al directorio de la máquina invitada donde están los archivos que están asociados con el navegador. Después de obtener copia de seguridad del archivo. ej. sudo mv local local_bk
  5. Luego cree un enlace simbólico, por ejemplo, sudo ln -s / source / local local. local significa el nombre del enlace (nombre de la carpeta en la máquina invitada que va a enlazar) si necesita eliminar el enlace simbólico: - escriba sudo rm local

Encuentro un poco confuso las terminologías "destino" y "directorio" en la información del hombre.

El objetivo es la carpeta con la que estamos sincronizando y el directorio el enlace simbólico real (no el directorio con el que usted estará simulando), 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):

ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK

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.

cd /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK

O

ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER/NAME-OF-YOUR-SYMLINK

Espero que esto ayude a aquellos (todavía) ligeramente confundidos.


Esto es , así que asumo que quieres el código:

El siguiente código supone que desea crear un enlace simbólico llamado /tmp/link que enlaza con /tmp/realfile .

PRECAUCIÓN : aunque este código comprueba si hay errores, ¡NO verifica si /tmp/realfile existe realmente! Esto se debe a que un enlace muerto sigue siendo válido y, dependiendo de su código, es posible que (rara vez) desee crear el enlace antes del archivo real.

Shell (bash, zsh, ...)

#!/bin/sh ln -s /tmp/realfile /tmp/link

Muy simple, al igual que lo haría en la línea de comandos (que es el shell). Todo el manejo de errores es realizado por el intérprete de shell. Este código supone que tiene un intérprete de shell en funcionamiento en /bin/sh .

Si es necesario, aún podría implementar su propio manejo de errores usando $? variable que solo se establecerá en 0 si el enlace se creó correctamente.

C y C ++

#include <unistd.h> #include <stdio.h> int main () { if( symlink("/tmp/realfile", "/tmp/link") != 0 ) perror("Can''t create the symlink"); }

symlink solo devuelve 0 cuando se puede crear el enlace. En otros casos, estoy usando perror para contar más sobre el problema.

Perl

#!/usr/bin/perl if( symlink("/tmp/realfile", "/tmp/link") != 1) { print STDERR "Can''t create the symlink: $!/n" }

Este código supone que tiene un intérprete de perl 5 en /usr/bin/perl . symlink solo devuelve 1 si se puede crear el enlace. En otros casos, estoy imprimiendo el motivo del fallo en la salida de error estándar.


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 enlaces simbólicos:

ln -s source target

puede consultar http://man7.org/linux/man-pages/man7/symlink.7.html

puedes crear enlaces demasiado duros

Un enlace duro a un archivo es indistinguible de la entrada de 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.

ln source link


Me gustaría presentar una versión simple en inglés de las descripciones ya presentadas.

ln -s /path-text/of-symbolic-link /path/to/file-to-hold-that-text

El comando "ln" crea un enlace-ARCHIVO, y la "-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 de WINE (usando "ls -la" para mostrar una línea del contenido del directorio):

lrwxrwxrwx 1 me power 11 Jan 1 00:01 a: -> /mnt/floppy

La información de archivo estándar está a la izquierda (aunque note 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 Windows "Drive A:" debe asociarse con una unidad de disquete en Linux. Para crear un enlace simbólico SIMILAR a eso (en el directorio actual, y hacer esto para WINE es más complicado; use la utilidad "winecfg"):

ln -s /mnt/floppy a: //will not work if file a: already exists


Para crear un enlace simbólico / soft link, use:

ln -s {source-filename} {symbolic-filename}

p.ej:

ln -s file1 link1


Para crear un nuevo enlace simbólico (fallará si ya existe un enlace simbólico):

ln -s /path/to/file /path/to/symlink

Para crear o actualizar un enlace simbólico:

ln -sf /path/to/file /path/to/symlink


Si se encuentra en el directorio donde desea crear un enlace simbólico, ignore la segunda ruta.

cd myfolder ln -s target

Se creará un enlace simbólico de target dentro de mi myfolder .

Sintaxis general

ln -s TARGET LINK_NAME


ln -s sourcepath linkpathname

Nota:

-s hace enlaces simbólicos en lugar de enlaces duros


ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME


ln -s TARGET LINK_NAME

Donde el -s hace simbólico.




ln [-Ffhinsv] source_file [target_file] link, ln -- make links -s Create a symbolic link. A symbolic link contains the name of the file to which it is linked. An ln command appeared in Version 1 AT&T UNIX.