Vous êtes sur la page 1sur 3

Que es un enlace simblico

Lo primero, como no, es explicar lo que es un enlace simblico. En un sistema


Linux o Unix, un enlace simblico, es un acceso directo a un fichero o
directorio. Es algo muy similar al Acceso directo de los programa en Windows.
Cabe decir que hay dos tipos de enlace simblico en Linux: Enlace simblico y
duro.

Enlaces simblicos

Un enlace simblico tambin puede definirse como una etiqueta o un nuevo


nombre asociado a un archivo pero a diferencia de los enlaces fsicos, el enlace
simblico no contiene los datos del archivo, simplemente apunta al registro del
sistema de archivos donde se encuentran los datos. Tiene mucha similitud a un
acceso directo en Windows o un alias en OS X.

Para crear un enlace simblico del archivo archivo.txt a nuevo_nombre.txt,


ejecutamos:

$ ln -s archivo.txt nuevo_nombre.txt

ste enlace tambin aparecer como otro archivo ms en el directorio y


apuntar al mismo contenido de archivo.txt, reflejando todos los cambios que
se hagan tanto para archivo.txt como para nuevo_nombre.txt.

Sobre un enlace simblico tambin se pueden usar todos los comandos bsicos
de archivos (rm, mv, cp, etc). sin embargo cuando el archivo original es
borrado o movido a una ubicacin diferente el enlace dejar de funcionar y se
dice que el enlace est roto.

Un enlace simblico permite enlazar directorios y, usando NFS, tambin


permite enlazar archivos fuera del equipo. En un principio puede parecer
complicado, pero luego de leer detalladamente seguro que tendrs ms claro
cundo usar un enlace simblico y cundo usar uno fsico.

Tipo de enlace simblico

Enlaces duros

Los enlaces duros lo que hacen es asociar dos o ms 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 tambin que cuando se realicen cambios en uno de los enlaces o en el
fichero este tambin se realizar en el resto de enlaces.
En sistemas GNU/Linux, los enlaces duros, tienen varias limitaciones. Una es
que slo se pueden hacer enlaces duros a archivos, y no a directorios.

La segunda limitacin es que no pueden expandirse a travs 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

Enlaces fsicos

Un enlace fsico no es ms que una etiqueta o un nuevo nombre asociado a un


archivo. Es una forma de identificar el mismo contenido con diferentes
nombres. ste enlace no es una copia separada del archivo anterior sino un
nombre diferente para exactamente el mismo contenido.

Para crear un enlace fsico en Linux del archivo archivo.txt a nuevo_nombre.txt,


ejecutamos:

$ ln archivo.txt nuevo_nombre.txt

El enlace aparecer como otro archivo ms en el directorio y apuntar al


mismo contenido de archivo.txt. Cualquier cambio que se haga se reflejar de
la misma manera tanto para archivo.txt como para nuevo_nombre.txt.

Un enlace se puede borrar usando el comando rm de la misma manera en que


se borra un archivo, sin embargo el contenido del inodo no se eliminar
mientras haya un enlace fsico que le haga referencia. Esto puede tener varias
ventajas, pero tambin puede complicar la tarea de seguimiento de los
archivos. Un enlace fsico tampoco puede usarse para hacer referencia a
directorios o a archivos en otros equipos.

Para crear un enlace simblico lanzaremos el siguiente comando


desde la terminal

ln -s DIRECTORIO_ORIGINAL DIRECTORIO_ENLACE

Donde

DIRECTORIO_ORIGINAL es el directorio al que queremos apuntar

DIRECTORIO_ENLACE es donde queremos poner el enlace al


DIRECTORIO_ORIGINAL

Sirva de ejemplo la siguiente sentencia

ln -s $HOME/www /opt/joomla1.5.1/joomla-1.5.2-0/apache2/htdocs/

Donde

/opt/joomla1.5.1/joomla-1.5.2-0/apache2/htdocs/ es la ruta al directorio en el


que se encuentran los archivos del servidor web que tengo montado en mi
equipo con el stack de Bitnami

$HOME es mi directorio de usuario

www es un directorio que me he creado en mi carpeta de usuario

Con ese enlace simblico consigo tener todos los proyectos web que voy
creando en mi equipo dentro de mi carpeta de usuario.

La idea es que si algn da cambio de distribucin Linux no perder ese trabajo


por un despiste: toda mi documentacin y proyectos estn en mi directorio de
usuario ($HOME) as no tengo que recordar que dentro del sistema de ficheros
de Linux tengo cosas que me podran hacer falta

TRUCO Para recordar el parmetro -s asociar la palabra SOFT o SIMBLICO


seguro que as no se te olvida