Varios

Diferencia entre enlace regular y enlace simbólico

single-image

Un enlace es un tipo especial de archivo que apunta a otro archivo o ubicación en el directorio de tu sistema. Los enlaces facilitan apuntar a un usuario o aplicación a una ubicación que podría referirse a una ruta mucho más enrevesada. Digamos, por ejemplo, que tienes una ruta que contiene datos de usuario en /usr/local/data/source/appsource/users. Lo último que deseas hacer es compartir esa ruta completa cada vez o requerir que los usuarios finales recuerden esa ruta. En cambio, podrías usar un enlace, de modo que los usuarios solo necesiten ir a /userdata.

En la superficie, es así de fácil. Sin embargo, hay un aspecto de los enlaces que debes tener en cuenta: Regular o simbólico (a menudo denominado hard o soft). Así es, hay dos tipos diferentes de enlaces en un sistema Linux y es importante entender la diferencia entre los dos.

Déjame explicar. Sin embargo, voy a hacer esto en términos simples. La diferencia entre los dos tipos de enlaces es en realidad un poco más complicada de lo que voy a exponer, pero quiero que esto sea tal que cualquiera pueda comprender el concepto de inmediato.

Enlaces simbólicos
Los enlaces simbólicos son probablemente lo que más utilizará en las máquinas Linux. Un enlace simbólico (o “soft”) es un archivo que actúa como un acceso directo a otra ubicación en tu sistema de archivos (similar a un iniciador de aplicaciones en un menú). Si tuvieras que crear un enlace simbólico llamado ~ /atajo que apuntara a / usr /local/data/user, si emitiste el comando ls ~ /atajo, la salida del comando en realidad estaría enumerando los contenidos de /usr /local/data/user (por supuesto, si soy técnico, en realidad apunta a un inodo diferente … pero esa es otra historia para otro día). Si creaste un nuevo archivo en ~ / acceso directo, llamado prueba, ese nuevo archivo se guardaría realmente en /usr/local/data/user. Además, si creas un nuevo archivo en /usr/local/data/user, estaría inmediatamente disponible en ~ / acceso directo.

¿Pero cómo se crea ese enlace simbólico? En realidad es bastante simple. Seguiremos con nuestro ejemplo. Para crear el enlace simbólico ~ /atajo, apuntando a /usr/local/data/user, el comando sería:


ln -s /usr/local/data/user ~/atajo

El indicador -s denota que este es un enlace simbólico.

Una vez que emitas el comando anterior, se creará el enlace simbólico. Emite el comando ls ~/ para ver el nuevo enlace en tu directorio (Figura A).

Figura A

 

Para eliminar el enlace, solo necesitarás emitir el comando:


rm ~/atajo

Cabe señalar que, para que un usuario pueda trabajar con éxito con un enlace simbólico, ese usuario necesitaría permiso en la carpeta de destino. Por lo tanto, si un usuario no tiene permiso de escritura para /usr/local/data/user, no podrás escribir en el enlace simbólico. Entonces, antes o después de crear el enlace simbólico, asegúrate de probar si los usuarios tienen los permisos necesarios para el directorio de destino.

Al igual que con los directorios, también puedes crear un enlace simbólico a un único archivo. Supongamos que tienes / usr / local / data / user / test y deseas crear un enlace simbólico en tu directorio de inicio. El comando para eso es similar:


ln -s /usr/local/data/user/test ~/test

Hay una instancia donde los enlaces simbólicos pueden ser un poco difíciles. Supongamos que has creado el enlace simbólico ~ / test que apunta a / usr / local / data / user / test y mueves / usr / local / data / user / test a / usr / local / data / user / TEST / test . Si lo haces, el enlace simbólico se mantendrá, pero no apuntará al archivo de destino. El enlace se habrá roto. Si realizas cambios en ~ / test, esos cambios no se reflejarán en / usr / local / data / user / TEST / test. Además, si eliminas el archivo original, el enlace simbólico permanecerá y (nuevamente) no señalará nada. Veamos qué pasa. Después de crear un enlace simbólico, moví el archivo de destino de un directorio a otro. La salida original de ls -l muestra un enlace simbólico de trabajo, mientras que la salida de ls -l, después de haberse movido el archivo de destino, muestra un enlace simbólico roto (Figura B).

Created with GIMP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lo mejor de los enlaces simbólicos es que pueden apuntar a cualquier cosa (archivos o directorios), a cualquier parte del sistema … e incluso abarcar todos los sistemas de archivos. El mayor problema con los enlaces simbólicos es que hay una pequeña penalización de espacio y velocidad. Los enlaces simbólicos añaden una capa adicional de direccionamiento indirecto sobre el acceso normal al archivo, de modo que el kernel debe navegar por el enlace cuando abre el archivo. Esto agrega una pequeña cantidad de tiempo al proceso. Si su servidor tiene que acceder a miles de archivos, ese tiempo ciertamente puede sumarse.

Enlaces regulares
Los enlaces regulares (también conocidos como “duros o “hard””) son algo completamente diferente. Cuando un enlace simbólico crea un acceso directo a otra ubicación, un enlace común es como crear un espejo de una ubicación a otra. Entonces, si tienes el archivo / usr / local / data / user / test y creas el enlace duro ~ / test, el contenido de / usr / local / data / user / test ahora existe en dos lugares. Esto significa que si eliminas el archivo de destino, el archivo de acceso directo permanecerá intacto. Ese no es el caso con los enlaces simbólicos (si eliminas el archivo de destino, el enlace simbólico fallará).

Antes de mostrarte cómo crear un enlace regular, debes saber que no puedes crear enlaces regulares a directorios, solo archivos. Si intentas crear un enlace regular a un directorio, es posible que recibas un error por el esfuerzo (Figura C).

Created with GIMP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sin embargo, puede crear un enlace regular a un archivo específico. Los enlaces regulares se crean de la misma manera que los enlaces simbólicos, solo que sin el distintivo -s. Entonces, para crear nuestro enlace regular ~ / test1 que apunta al archivo original / usr / local / data / user / test1, el comando sería:


ln /usr/local/data/user/test1 ~/test1

Si editamos cualquier archivo, los cambios se reflejarán en ambos. Si borramos cualquiera de los archivos, el otro permanecerá intacto.

Lo mejor de los enlaces regulares es que no hay una penalización de velocidad o tamaño al usarlos. El mayor problema con los enlaces regulares es que no pueden abarcar todos los sistemas de archivos.

Fuente: techrepublic.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Visitada 1 veces, 1 visitas hoy )
Comparte

1
Responder

avatar
Imágenes
 
 
 
Auido y vídeo
 
 
 
Otros archivos
 
 
 
1 Hilo de comentarios
0 Hilo de respuestas
0 Seguidores
 
Comentario más reaccionado
Hilo de comentarios más populares
0 Autores de comentarios
maslinuxAutores de comentarios más recientes
  Suscribirse  
+ nuevos + antiguos + votados
Notificarme de
maslinux
Invitado
maslinux

4.5

Quizás también te interese ..


Strict Standards

: call_user_func_array() expects parameter 1 to be a valid callback, non-static method SimTermLoader::basic_init() should not be called statically in /var/www/vhost/maslinux.es/home/html/wp-includes/class-wp-hook.php on line 286

Strict Standards: Non-static method SimTermLoader::Init() should not be called statically in /var/www/vhost/maslinux.es/home/html/wp-content/plugins/simterm/simterm.php on line 57