Respondo de nuevo, ya que antes sólo le envié el mail al autor... (perdón)

El problema justamente está en el concepto del HardLink y Archivo. En
realidad dentro del sistema de archivos de tu sistema GNU/Linux podemos
entender los archivos si tenemos en cuenta los "famosos" i-nodos y los
nombres de archivos.
Que quiero decir con esto, los nombres son referencias que se establecen
dentro del árbol de directorios, para que nosotros o los programas que
tenemos dentro de nuestro sistema puedan encontrar de una manera más simple
la información que está almacenada.
Mientras que el i-nodo, guarda todo el resto de la información del
"archivo". Por eso cuando hablamos de HardLinks estamos hablando de nuevas
referencias a un i-nodo en particular, lo cual no agrega espacio en disco
(simplemente lo que ocupa la referencia del nombre y el inodo en cuestión,
unos pocos KBs).

Más info puede verse en: http://es.wikipedia.org/wiki/Inodo

Te muestro un ejemplo:

Dentro del directorio VM tengo 2 "archivos" que son 2 nombres que apuntan
al mismo inodo (LMDE-2013.ova y vm.ova). Podemos ver como tenemos 2 enlaces
duros ya que el número que aparece antes del propietario del archivo es 2.
Según el ls (ll es un alias que tengo de ls -lh) el total del directorio VM es
de 3,8GB. Aunque nosotros sabemos que al ser 2 HardLinks sólo ocupan la
mitad del espacio, ya que en el disco la información no está duplicada,
sino lo que está duplicado es la referencia a la misma.

leo@Leo-XPS-Debian:~/Descargas/VM$ ll
total 3,8G
-rw------- 2 leo leo 1,9G mar 11 20:02 LMDE-201303RC.ova
-rw------- 2 leo leo 1,9G mar 11 20:02 vm.ova
leo@Leo-XPS-Debian:~/Descargas/VM$ du -h
1,9G .

Como se puede ver, cuando tiramos un du -h nos muestra correctamente la
información del directorio. Es decir tan sólo ocupa en disco 1,9G.

leo@Leo-XPS-Debian:~/Descargas/VM$ rm vm.ova
leo@Leo-XPS-Debian:~/Descargas/VM$ ll
total 1,9G
-rw------- 1 leo leo 1,9G mar 11 20:02 LMDE-201303RC.ova
leo@Leo-XPS-Debian:~/Descargas/VM$ du -h
1,9G .
leo@Leo-XPS-Debian:~/Descargas/VM$

Como se puede observar, después de eliminar el archivo, la referecia es
única y ahora la información que nos da el ls y du es la misma.

Con lo que nos queda, cuál es el "archivo" original? La respuesta, NINGUNO!
Ya que como dije antes, el concepto de archivo que tenés que tener en la
cabeza es la de inodo+referencia. Y los HardLinks son nuevas referecias a
ese inodo, no son "nuevos archivos", ni copias, ni nada por el estilo. De
ahí que es imposible determinar cuál es el original, porque el original, si
pensamos en términos de la información es el ínodo... Entonces, no hay
forma de que un programa pueda determinar el original y el HardLink. Ya que
como mencioné antes, el original "inlcuye" un HardLink... ;-)

Espero haber sido claro y que te ayude con lo que necesitabas y haber
respondido como debía :-P

Saludos!
LEO.

Responder a