[Linux] links

Gunnar Wolf gwolf en campus.iztacala.unam.mx
Sab Oct 7 19:21:34 CDT 2000


> Jao Tribu !!!
> 
> Que diferencia hay entre un link "hard" y uno "symbolic"  ?

Un hard link realmente hace que el mismo archivo este en dos lugares a la
vez. En Unix es perfectamente legal y normal, si bien te puede sonar a
algo raro si vienes de MS-DOS, donde esto seria visto como sintoma del
temido 'Cross-linked file' Claro, solo puedes hacer hard links dentro de
un mismo sistema de archivos. 

Es tan normal, de hecho, el que existan estas ligas que cuando haces un
ls -l te reporta siempre el numero de ligas que tiene cada archivo:

-rw-rw-r--   1 gwolf    gwolf         228 Sep  6 12:42 texput.log
drwxrwxr-x   2 gwolf    gwolf        4096 Oct  4 15:41 vale
-rw-------   1 gwolf    gwolf        2890 Sep  4 16:58 vsu.post
-rwxr-xr-x   1 gwolf    gwolf          46 Sep 14 11:51 x.sh

\________/   ^ \______/\______/\________/\___________/\__________/
   1         2     3      4       5             6         7

1- Permisos
2- Numero de ligas que tiene
3- Dueño
4- Grupo
5- Tamaño
6- Hora y fecha de modificacion
7- Nombre

Los directorios siempre tienen dos o mas ligas duras - o sea, puntos que
se refieren a el. Esto es por que cada directorio, para mantener una
organizacion logica y facil de seguir, tiene los directorios especiales
.. (yo mismo) y .. (mi directorio padre). Por lo tanto, si tu das

mkdir /home/gwolf/temp

va a haber dos ligas a la informacion del directorio: /home/gwolf/temp y
/home/gwolf/temp/.

Si creas directorios dentro de temp, el numero de ligas de temp se
incrementa en uno, ya que el .. de cada hijo de temp es una liga a temp.

Para preservar la estructura de directorio, esta prohibido que hagas ligas
duras a directorios, ya que estarias creando posibles ciclos en el sistema
de archivos. 

Una liga simbolica es simplemente un apuntador que lleva al lugar del
archivo referenciado. Por ejemplo, si quiero crear una liga simbolica a
/home/gwolf/temp que se llame /home/gwolf/otrotemp, hago:

ln -s /home/gwolf/temp /home/gwolf/otrotemp

Si le doy ls -l /home/gwolf, entre otros muchos archivos, encontrare:

lrwxrwxrwx   1 gwolf    gwolf           4 Oct  7 19:13 otrotemp -> /home/gwolf/temp

El utilizar ligas simbolicas es transparente para practicamente cualquier
aplicacion.

Espero que esto te ayude, o por lo menos, te siembre mas dudas ;)

Saludos,

PD - Respondo a ambas listas pues ninguna es mas importante que la otra
como para borrarla del TO:. Sin embargo, te pido que no hagas
cross-posting: Envia los mensajes a solamente una lista. Asi evitaras que
mucha gente se enoje porque le llega correo repetido. 

Saludos,

-------------------------------------------------------------------
           Gunnar Wolf    gwolf en campus.iztacala.unam.mx
     Universidad Nacional Autónoma de México, Campus Iztacala
   Jefatura de Sección de Desarrollo y Admon. de Sistemas en Red
       Departamento de Seguridad en Computo - DGSCA - UNAM
-------------------------------------------------------------------
  Beginner thinks 1Kb == 1000 bytes.   Master knows 1Km == 1024m

---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx




Más información sobre la lista de distribución Ayuda