InicioLinuxEnlaces simbolicos y duros en GNU/Linux
Enlaces Simbólicos

Un enlace simbólico (enlace blando, o acceso directo) es un archivo especial que contiene un nombre de camino. Así, los enlaces blandos pueden apuntar a ficheros en sistemas de ficheros diferentes (posiblemente montados por NFS desde máquinas diferentes, unidades extraibles), y no tienen por qué apuntar a ficheros que existan realmente.


Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo, es decir, en realidad lo que hacemos es enlazar directamente al nombre del fichero. Los enlaces simbólicos son ampliamente usados para las librerías compartidas.

Para comprendelo mejor, un "enlace simbólico" no es más que una referencia (enlace) a una carpeta (directorio) o fichero que está situado en un lugar físico distinto.




Crear enlaces simbólicos de directorios

La mejor forma de explicarlo es creando un enlace simbólico, pasemos a ello, el directorio publico contiene varios documentos, y está localizado en /publico

Ahora vamos a crear un enlace simbólico en /home/pepe al directorio /publico

La forma de operar es la siguiente:

ln -s /origen /enlace-a-origen

Entonces podemos crear un enlace simbólico desde donde nos encontramos escribiendo la ruta completa con el siguiente comando:

ln -s /publico/2013 /home/pepe/enlace-a-publico


o podemos ir al directorio donde deseamos crear el enlace

cd /home/pepe
ln -s /publico/2013 enlace-a-publico



Podemos comprobar los resultados por consola, si listamos veremos que el enlace tiene el carácter l que lo identifica como enlace simbólico y se puede saber a que archivo están apuntando ya que se muestra la ruta -->

ls -l /home/pepe/enlace-a-publico

Como se ve los bits de permisos en un enlace simbólico no se usan (siempre aparecen como (rwxrwxrwx). En su lugar, los permisos del enlace simbólico son determinados por los permisos del fichero o directorio apuntado.









Si intenta efectuar la orden chmod sobre el enlace simbólico recién creado, en realidad cambiará los permisos del fichero al que apunta el enlace simbólico.

chmod 750 /home/pepe/enlace-a-publico

El comando anterior dará un mensaje de error, ya que el directorio 2013 no existe, esto significa que ha podido crear un enlace simbólico al directorio aunque no exista.


Entonces nos disponemos a crear el directorio /publico/2013 con permisos 755

mkdir -m 755 /publico/2013


Y verificamos que se creo con los permisos asignados:

ls -dl /publico/2013









Repetimos el comando que nos dio error antes:

chmod 750 /home/pepe/enlace-a-publico


Ahora no obtuvimos el error por que el directorio existe, si listamos vemos que el enlace simbólico mantiene sus permisos y que el directorio /publico/2013 fue el que cambio los permisos, de 755 a 750.


ls -l /home/pepe/enlace-a-publico
ls -dl /publico/2013










Para confirmar que el enlace simbólico tiene un inodo distinto usamos el comando ls -il:

ls -ild /publico/2013
ls -il /home/pepe/enlace-a-publico









De forma gráfica el resultado esta a la vista sin mucho más que explicar.









A continuación vamos a crear un archivo, haciendo uso del enlace simbólico al directorio 2013:

touch /home/pepe/enlace-a-publico/mifichero

Esto crea un archivo en enlace-a-publico llamado mifichero, pero la ubicación de este archivo es /publico/2013 vamos a listar para verlo.

ls -l /publico/2013

El fichero se ha creado en realidad en /publico/2013











Debemos tener presente:

Hay que tener en cuenta, que si borramos el archivo o directorio origen, el enlace simbólico permanece pero los datos desaparecen para siempre, pero si borramos el enlace simbólico no borraremos el directorio o archivo real.

Es importante remarcar que si accedemos al directorio por el atajo y luego hacemos un cd .. volveremos al directorio donde está el atajo y no al directorio superior.







Borrar enlaces simbólicos

Para eliminar un enlace tenemos dos posibles opciones:

unlink /home/pepe/enlace-a-publico

o podemos usar el conocido comando rm

rm /home/pepe/enlace-a-publico

Una vez que borramos el enlace simbólico comprobamos que el directorio al que estaba apuntando aun existe.

ls -ld /publico/2013










En cambio si borramos el directorio 2013 al cual apunta el enlace simbólico veremos que los enlaces todavía existen, y obviamente ya no esta accesible el fichero original.










Crear enlaces simbólicos de archivos

En el caso que quisiéramos crear un enlace simbólico al archivo tesis-grupal que esta en el directorio /publico lo hacemos con los siguientes comandos.

Creamos el archivo tesis-grupal

echo "Tesis sobre GNU/Linux" > /publico/tesis-grupal



Como sabemos podemos crear el enlace desde donde nos encontramos escribiendo la ruta completa con el siguiente comando:

ln -s /publico/tesis-grupal /home/pepe/tesis-enlace-simbolico


o podemos ir al directorio donde deseamos crear el enlace y le asignamos el nombre tesis-enlace-simbolico

cd /home/pepe

ln -s /publico/tesis-grupal tesis-enlace-simbolico


Y con el comando cat podemos ver que el enlace apunta hacia el archivo que creamos antes:

cat /home/pepe/tesis-enlace-simbolico
















Enlaces duros

Los enlaces duros lo que hacen es asociar dos o más ficheros compartiendo el mismo inodo. Esto hace que cada enlace duro sea una copia exacta del resto de ficheros asociados, tanto de datos como de permisos, propietario, etc. Esto implica también que cuando se realicen cambios en uno de los enlaces o en el fichero este también se realizará en el resto de enlaces.

En sistemas GNU/Linux, los enlaces duros, tienen varias limitaciones. Una es que sólo se pueden hacer enlaces duros a archivos, y no a directorios.

La segunda limitación es que no pueden expandirse a través de distintos sistemas de archivos. Esto significa que no puede crear un enlace permanente desde /usr/bin/bash hacia /bin/bash si sus directorios / y /usr pertenecen a distintos sistemas de archivos.


Vamos a crear un enlace duro al fichero "tesis-grupal" que antes usamos y veremos que efectivamente comparten inodo y que los datos de propietario, grupo y permisos se mantienen sincronizados:



ln /publico/tesis-grupal /home/pepe/tesis-enlace-duro


o podemos ir al directorio donde deseamos crear el enlace

cd /home/pepe

ln /publico/tesis-grupal tesis-enlace-duro


Luego listamos para analizar los resultados con ls -il

ls -il /publico/tesis-grupal
ls -il /home/pepe/tesis-enlace-duro








En la primera columna verificamos que tienen el mismo número de inodo y en la tercera se especifica cuandos enlaces duros tiene el fichero, vamos a crear otro enlace y el numero se va a incrementar.


ln /publico/tesis-grupal /home/pepe/tesis-enlace-duro2

o podemos ir al directorio donde deseamos crear el enlace

cd /home/pepe
ln /publico/tesis-grupal tesis-enlace-duro2

Luego listamos para analizar los resultados con ls -il

ls -il /publico/tesis-grupal
ls -il /home/pepe/tesis-enlace-duro
ls -il /home/pepe/tesis-enlace-duro2









Si editamos o modificamos un enlace duro veremos que también se modifican el resto de los enlaces y en el archivo origen.
Por ejemplo vamos a agregar texto al enlace tesis-enlace-duro2 para comprobar como el cambio afecta al archivo tesis-grupal y al otro enlace duro


echo "Cap. 1 Enlaces simbolicos" >> /home/pepe/tesis-enlace-duro

Y finalmente hacemos un cat a los archivos para verificar los resultados:

cat /publico/tesis-grupal
cat /home/pepe/tesis-enlace-duro
cat /home/pepe/tesis-enlace-duro2

y como podemos ver la edición al archivo tesis-enlace-duro también afecto al archivo tesis-grupal y a tesis-enlace-duro2







Si queremos obtener más datos para comprobar que son iguales los 3 archivos podemos recurrir a el comando stat

stat /publico/tesis-grupal
stat /home/pepe/tesis-enlace-duro
stat /home/pepe/tesis-enlace-duro2











En el caso de los enlaces duros si borras en archivo de origen no vamos a perder el fichero, ya que los enlaces duros son una copia fiel de el.

Borramos el archivo origen

rm /publico/tesis-grupal


el enlace duro funciona sin problemas

cat /home/pepe/tesis-enlace-duro

y vemos que existen dos enlaces duros todavía.

stat /home/pepe/tesis-enlace-duro













Borrando enlaces duros

Igual que con los enlaces simbólicos podemos usar dos comandos para borrar los enlaces duros:


unlink /home/pepe/tesis-enlace-duro2

o podemos usar el conocido comando rm

rm /home/pepe/tesis-enlace-duro2


Con el comando anterior el único enlace duro que nos queda es el tesis-enlace-duro si lo eliminamos ya perderíamos definitivamente el archivo, así que a no confundirse con este concepto.

cat /home/pepe/tesis-enlace-duro
stat /home/pepe/tesis-enlace-duro













Como una breve conclusión podemos decir que:

✔ Los enlaces simbólicos se pueden hacer con ficheros y directorios, los enlaces duros solo con ficheros.

✔ Los enlaces simbólicos se pueden hacer entre distintos sistemas de archivos, los enlaces duros no.

✔ En los enlaces simbólicos si se borra el archivo o directorio original la información se pierde, en los enlaces duros no.

✔ Los enlaces duros son copias de los originales que comparten el numero de inodo, mientras de los enlaces simbólicos son meros punteros.







Para consultas puntuales sobre este tema, o temas relacionados con servidores pasen por esta comunidad, todos serán bienvenidos!!


Comunidad Servidores GNU/Linux

Visitala haciendo clic en la imagen!!!





Fuentes de conocimiento:













_____________________________________________________________________





Si te gusto el post comenta!
Estas sin tiempo para leerlo detenidamente? Agregalo a favoritos ya!
No entendiste algo? mandame un MP que te ayudo.
Te gustan mis aportes? Seguime! no te defraudaré.





Visita mis aportes o bajalo en PDF


---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF

---- Bajalo en PDF
---- Bajalo en PDF

---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF
---- Bajalo en PDF

---- Bajalo en PDF
---- Bajalo en PDF

---- Bajalo en PDF
---- Bajalo en PDF
Datos archivados del Taringa! original
319puntos
738visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

No hay comentarios nuevos todavía

Autor del Post

a
alband🇦🇷
Usuario
Puntos0
Posts71
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.