similitudes simbólicos simbolico remover qué permiten para link hay fuertes entre enlaces enlace duros duro directorios directorio diferencias unix symlink hardlink

unix - simbólicos - ¿Cuál es la diferencia entre un enlace simbólico y un enlace duro?



qué diferencias y similitudes hay entre enlaces simbólicos y enlaces duros (22)

Desde MSDN ,

MSDN

Un enlace simbólico es un objeto del sistema de archivos que apunta a otro objeto del sistema de archivos. El objeto al que se apunta se llama el objetivo.

Los enlaces simbólicos son transparentes para los usuarios; los enlaces aparecen como archivos o directorios normales, y pueden ser ejecutados por el usuario o la aplicación exactamente de la misma manera.

Los enlaces simbólicos están diseñados para ayudar en la migración y la compatibilidad de aplicaciones con los sistemas operativos UNIX. Microsoft ha implementado sus enlaces simbólicos para funcionar como los enlaces de UNIX.

Los enlaces simbólicos pueden ser enlaces absolutos o relativos. Los enlaces absolutos son enlaces que especifican cada parte del nombre de la ruta; los enlaces relativos se determinan en relación a donde se encuentran los especificadores de vínculos relativos en una ruta especificada

Un ejemplo de enlace simbólico absoluto.

X: "C:/alpha/beta/absLink/gamma/file" Link: "absLink" maps to "//machineB/share" Modified Path: "//machineB/share/gamma/file"

Un ejemplo de enlaces simbólicos relativos

X: C:/alpha/beta/link/gamma/file Link: "link" maps to "../../theta" Modified Path: "C:/alpha/beta/../../theta/gamma/file" Final Path: "C:/theta/gamma/file"

Enlace duro

Un enlace duro es la representación del sistema de archivos de un archivo mediante el cual más de una ruta hace referencia a un solo archivo en el mismo volumen .

Para crear un enlace fijo en Windows, vaya a donde se creará el enlace e ingrese este comando:

mklink /H Link_name target_path

Tenga en cuenta que puede eliminar enlaces duros en cualquier orden, independientemente del orden en que se crearon. Además, los enlaces duros no se pueden crear cuando

  • Las referencias están en diferentes unidades locales
  • Las referencias incluyen unidad de red. En otras palabras, una de las referencias es una unidad de red.
  • El enlace duro que se creará está en la misma ruta que el objetivo

Unión

NTFS soporta otro tipo de enlace llamado unión. MSDN lo define como sigue:

Una unión (también llamada enlace flexible) difiere de una conexión rígida en que los objetos de almacenamiento a los que hace referencia son directorios separados, y una unión puede vincular directorios ubicados en diferentes volúmenes locales en la misma computadora . De lo contrario, las uniones funcionan de manera idéntica a los enlaces duros.

Las partes en negrita en la sección de enlace duro y la sección de unión muestran la diferencia básica entre las dos.

Comando para crear una unión en Windows, vaya a donde se creará el enlace y luego ingrese:

mklink /J link_name target_path

Recientemente me preguntaron esto durante una entrevista de trabajo. Fui honesto y dije que sabía cómo se comporta un enlace simbólico y cómo crearlo, pero no entiendo el uso de un enlace duro y en qué se diferencia de uno simbólico.


Acabo de encontrar una manera fácil de entender los enlaces duros en un escenario común, la instalación de software.

Un día descargué un software a la carpeta Downloads para instalar. Después de que hice sudo make install , algunos archivos ejecutables se cp en una carpeta bin local. Aquí, cp crea enlace duro . Estaba feliz con el software, pero pronto me di cuenta de que las Downloads no son un buen lugar a largo plazo. Así que hice la carpeta del software al directorio source . Bueno, todavía puedo ejecutar el software como antes sin preocuparme por las cosas del enlace de destino, como en Windows. Esto significa que el enlace duro encuentra inodo directamente y otros archivos alrededor.


Agrego a la pregunta de Nick: ¿cuándo son útiles o necesarios los enlaces duros ? La única aplicación que me viene a la mente, en la que los enlaces simbólicos no harían el trabajo, es proporcionar una copia de un archivo de sistema en un entorno de chroot.


Alguna buena intuición que podría ayudar, usando cualquier consola de Linux (ish).

Crea dos archivos:

$ touch blah1; touch blah2

Introduzca algunos datos en ellos:

$ echo "Cat" > blah1 $ echo "Dog" > blah2

(En realidad, podría haber usado el eco en primer lugar, ya que crea los archivos si no existen ... pero no importa.)

Y como era de esperar:

$cat blah1; cat blah2 Cat Dog

Vamos a crear enlaces duros y blandos:

$ ln blah1 blah1-hard $ ln -s blah2 blah2-soft

Veamos que acaba de pasar:

$ ls -l blah1 blah1-hard blah2 blah2-soft -> blah2

Cambiar el nombre de blah1 no importa:

$ mv blah1 blah1-new $ cat blah1-hard Cat

blah1-hard apunta al inodo, el contenido del archivo, que no se modificó.

$ mv blah2 blah2-new $ ls blah2-soft blah2-soft $ cat blah2-soft cat: blah2-soft: No such file or directory

No se pudo encontrar el contenido del archivo porque el enlace flexible apunta al nombre que se cambió y no al contenido. Del mismo modo, si se elimina blah1, blah1-hard aún contiene el contenido; Si se elimina blah2, blah2-soft es solo un enlace a un archivo que no existe.


Como dice el dicho, una imagen vale más que mil palabras. Así es como lo visualizo:

Así es como llegamos a esa imagen:

  1. Cree un nombre myfile.txt en el sistema de archivos que apunte a un nuevo inodo (que contenga los metadatos para el archivo y apunte a los bloques de datos que contienen su contenido, es decir, el texto "¡Hola, Mundo!":

    $ echo ''Hello, World!'' > myfile.txt

  2. Cree un enlace duro my-hard-link al archivo myfile.txt , que significa "crear un archivo que debería apuntar al mismo inodo al que myfile.txt apunta":

    $ ln myfile.txt my-hard-link

  3. Cree un enlace suave my-soft-link enlace my-soft-link al archivo myfile.txt , que significa "crear un archivo que debería apuntar al archivo myfile.txt ":

    $ ln -s myfile.txt my-soft-link

Observe lo que ocurrirá ahora si myfile.txt se elimina (o se mueve): my-hard-link aún apunta a los mismos contenidos, y por lo tanto no se ve afectado, mientras que my-soft-link ahora no apunta a nada. Otras respuestas discuten los pros / contras de cada uno.


Debajo de los archivos del sistema de archivos están representados por inodos (o es inodo múltiple no está seguro)

Un archivo en el sistema de archivos es básicamente un enlace a un inodo.
Un enlace duro luego crea otro archivo con un enlace al mismo inodo subyacente.

Cuando elimina un archivo, elimina un enlace al inodo subyacente. El inodo solo se borra (o se puede borrar o sobreescribir) cuando todos los enlaces al inodo se han eliminado.

Un enlace simbólico es un enlace a otro nombre en el sistema de archivos.

Una vez que se ha hecho un enlace duro, el enlace es al inodo. eliminar el cambio de nombre o mover el archivo original no afectará el enlace físico, ya que se vincula al inodo subyacente. Cualquier cambio en los datos en el inodo se refleja en todos los archivos que se refieren a ese inodo.

Nota: Los enlaces duros solo son válidos dentro del mismo sistema de archivos. Los enlaces simbólicos pueden abarcar sistemas de archivos, ya que son simplemente el nombre de otro archivo.


EN esta respuesta cuando digo un archivo me refiero a la ubicación en la memoria

Todos los datos que se guardan se almacenan en la memoria mediante una estructura de datos llamada inodos. Cada inodo tiene un número de inoden. El número de inode se usa para acceder al inode. Todos los enlaces duros a un archivo pueden tener nombres diferentes pero comparten el mismo número de inode. Dado que todos los enlaces duros tienen el mismo número de referencia (que a su vez acceden al mismo inodo), todos apuntan a la misma memoria física.

Un enlace simbólico es un tipo especial de archivo. Ya que también es un archivo tendrá un nombre de archivo y un número de inodo. Como se dijo anteriormente, el número de inodo tiene acceso a un inodo que apunta a los datos. Ahora lo que hace que un enlace simbólico sea especial los inodenumbers en enlaces simbólicos acceden a esos inodos que apuntan a "una ruta" a otro archivo. Más específicamente, el número de inodo en el enlace simbólico accede a aquellos inodos que apuntan a otro enlace duro.

cuando nos estamos moviendo, copiando, eliminando un archivo en la GUI estamos jugando con los enlaces físicos del archivo, no con la memoria física. Cuando eliminamos un archivo, estamos eliminando el enlace físico del archivo. no estamos borrando la memoria física. Si se eliminan todos los enlaces duros al archivo, no será posible acceder a los datos almacenados, aunque aún puede estar presente en la memoria


Lo que usted considera un "archivo" ordinario es en realidad dos cosas separadas: los datos de un archivo y una entrada de directorio. Cuando crea un enlace fijo para un archivo, en realidad crea una segunda entrada de directorio que se refiere a los mismos datos. Ambas entradas de directorio tienen la misma funcionalidad exacta; Cada uno puede ser usado para abrir el archivo para leerlo. Entonces, realmente no tiene "un archivo más un enlace duro", tiene "datos de archivo con dos entradas de directorio". Lo que usted considera que al eliminar un archivo, en realidad elimina una entrada de directorio, y cuando se borra la última entrada de directorio para los datos, los datos en sí también se eliminan. Para los archivos normales que tienen solo una entrada de directorio, eliminar la entrada de directorio eliminará los datos como siempre. (Mientras se abre un archivo, el sistema operativo crea un enlace temporal al archivo, por lo que incluso cuando borra todas las entradas del directorio, los datos permanecen pero desaparecen tan pronto como cierra el archivo).

Como ejemplo, cree un archivo A.txt, un enlace duro B.txt y elimine A.txt. Cuando creó A.txt, se crearon algunos datos y una entrada de directorio A.txt. Cuando creó el enlace fijo, se creó otra entrada de directorio B.txt, que apunta exactamente a los mismos datos. Cuando elimina A.txt, todavía tiene todos los datos y una sola entrada de directorio B.txt, exactamente como si hubiera creado un archivo B.txt en primer lugar.

Un enlace flexible es solo un archivo (casi) ordinario, excepto que no contiene datos, sino la ruta de acceso de otra entrada de directorio. Si elimina el archivo al que se refiere el enlace flexible, entonces el enlace flexible contendrá una ruta que ya no apunta a una entrada de directorio; está roto. Si elimina el enlace flexible, es como eliminar cualquier otro archivo, el archivo al que apunta no se ve afectado.


Los enlaces duros son útiles cuando el archivo original se mueve. Por ejemplo, mover un archivo de / bin a / usr / bin o / usr / local / bin. Cualquier enlace simbólico al archivo en / bin se rompería por esto, pero un enlace duro, al ser un enlace directamente al inodo para el archivo, no importaría.

Los enlaces duros pueden ocupar menos espacio en el disco, ya que solo ocupan una entrada de directorio, mientras que un enlace simbólico necesita su propio inodo para almacenar el nombre al que apunta.

Los enlaces físicos también tardan menos tiempo en resolverse: los enlaces simbólicos pueden apuntar a otros enlaces simbólicos que están en directorios vinculados. Y algunos de estos podrían estar en NFS u otros sistemas de archivos de alta latencia, y por lo tanto podrían resultar en el tráfico de red para resolver. Los enlaces duros, al estar siempre en el mismo sistema de archivos, siempre se resuelven en una sola búsqueda y nunca implican latencia de red (si es un enlace rígido en un sistema de archivos NFS, el servidor NFS haría la resolución y sería invisible para el sistema cliente). A veces esto es importante. No para mí, pero puedo imaginar sistemas de alto rendimiento donde esto podría ser importante.

También creo que cosas como mmap (2) e incluso open (2) usan la misma funcionalidad que los enlaces duros para mantener activo el inodo de un archivo, de modo que incluso si el archivo se desvincula (2) ed, el inode permanece para permitir el proceso de acceso continuo. y solo una vez que el proceso se cierra, el archivo desaparece. Esto permite archivos temporales mucho más seguros (si puede abrir y desvincularse de forma atómica, para lo cual podría haber una API POSIX que no recuerdo, entonces realmente tiene un archivo temporal seguro) donde puede leer / escribir Tus datos sin que nadie pueda acceder a ellos. Bueno, eso era cierto antes de que / proc les diera a todos la capacidad de ver sus descriptores de archivo, pero esa es otra historia.

Hablando de eso, recuperar un archivo que está abierto en el proceso A, pero no enlazado en el sistema de archivos gira en torno al uso de enlaces físicos para recrear los enlaces de inodo para que el archivo no desaparezca cuando el proceso que lo abre se cierra o desaparece.


Los enlaces duros son muy útiles cuando se hacen copias de seguridad incrementales. Ver rsnapshot , por ejemplo. La idea es hacer copia usando enlaces duros:

  • Copia de copia de seguridad número n a n + 1
  • copia de seguridad n - 1 a n
  • ...
  • copia de seguridad 0 a copia de seguridad 1
  • Actualizar copia de seguridad 0 con cualquier archivo cambiado.

La nueva copia de seguridad no ocupará espacio adicional, aparte de los cambios que haya realizado, ya que todas las copias de seguridad incrementales apuntarán al mismo conjunto de inodos para los archivos que no han cambiado.


Los enlaces simbólicos dan otro nombre a un archivo, de manera similar a los enlaces duros. Pero un archivo puede ser eliminado incluso si quedan enlaces simbólicos restantes.


Los enlaces simbólicos enlazan a un nombre de ruta. Esto puede estar en cualquier lugar del árbol de archivos del sistema, y ​​ni siquiera tiene que existir cuando se crea el enlace. La ruta de destino puede ser relativa o absoluta.

Los enlaces físicos son punteros adicionales a un inodo, lo que significa que pueden existir solo en el mismo volumen que el destino. Los enlaces físicos adicionales a un archivo son indistinguibles del nombre "original" utilizado para hacer referencia a un archivo.


Me gustaría señalarle a Wikipedia:

Algunos puntos:

  • Los enlaces simbólicos, a diferencia de los enlaces duros, pueden cruzar sistemas de archivos (la mayoría de las veces).
  • Los enlaces simbólicos pueden apuntar a directorios.
  • Los enlaces duros apuntan a un archivo y le permiten referirse al mismo archivo con más de un nombre.
  • Mientras haya al menos un enlace, los datos todavía están disponibles.

Mis dos centavos en uso:

Los enlaces blandos pueden usarse para acortar nombres de ruta largos, es decir:

ln -s /long/folder/name/on/long/path/file.txt /short/file.txt

Los cambios realizados en /short/file.txt se aplicarán en el archivo original.

Los enlaces duros se pueden usar para mover archivos grandes:

$ ls -lh /myapp/dev/ total 10G -rw-r--r-- 2 root root 10G May 22 12:09 application.bin

ln /myapp/dev/application.bin /myapp/prd/application.bin

La copia instantánea a una carpeta diferente, y el archivo original (en /myapp/dev ) se puede mover o eliminar, sin tocar el archivo en /myapp/prd


Simplemente, Hard link: es solo agregar un nuevo nombre a un archivo, es decir, un archivo puede tener muchos nombres al mismo tiempo, todos los nombres son iguales entre sí, nadie lo prefiere, Hard link no significa copiar todo el contenido El archivo y crear un archivo nuevo no es eso, solo crea un nombre alternativo para ser conocido.

Enlace simbólico (enlace simbólico): es un puntero de archivo a otro archivo, si el enlace simbólico apunta a un archivo existente que luego se elimina, el enlace simbólico continúa apuntando al mismo nombre de archivo aunque el nombre ya no nombre a ningún archivo.


Sumado a todas las respuestas anteriores, la diferencia en la búsqueda del archivo de enlace físico y del archivo de enlace flexible se puede entender de la siguiente manera:

Tengo un archivo f6 en mi directorio actual, así como un directorio llamado t2 .

Los archivos denominados f1 y ./t2/f2 son enlaces simbólicos a f6 .

Los archivos llamados f7 y ./t2/f8 son enlaces duros de f6 .

Para encontrar enlaces blandos y duros podemos usar:

$ find -L . -samefile f6 > ./f1 > ./f6 > ./f7 > ./t2/f2 > ./t2/f8

Para encontrar solo enlaces duros podemos usar:

$ find . -xdev -samefile f6 > ./f6 > ./f7 > ./t2/f8

Dado que los enlaces físicos se pueden crear en el mismo sistema de archivos, podemos buscar todos los -xdev sin la opción -L utilizada (con la opción -xdev ) en el mismo sistema de archivos / punto de montaje. Guarda la búsqueda innecesaria en diferentes puntos de montaje.

Por lo tanto, buscar el enlace físico es algo más rápido que buscarlo (rectifíquelo si estoy equivocado o si no estoy claro).


También:

  1. Leer el rendimiento de los enlaces duros es mejor que los enlaces simbólicos (micro rendimiento)
  2. Los enlaces simbólicos pueden ser copiados, controlados por versión, ..etc. En otras palabras, son un archivo real. En el otro extremo, un enlace duro es algo en un nivel ligeramente inferior y encontrará que, en comparación con los enlaces simbólicos, hay menos herramientas que proporcionan medios para trabajar con los enlaces duros como enlaces duros y no como archivos normales.

Una entrada de directorio es link a structrue:

struct dentry{ ino_t ino; char name[256]; }

el ino es el número de inodo, el nombre es el nombre del archivo, la estructura del inodo puede ser :

struct inode{ link_t nlink; ... }

por ejemplo, crea un archivo / 1, la entrada de directorio puede ser como:

struct dentry{ ino_t ino; /* such as 15 */ char name[256]; /* "1" */ }

la estructura de inodo tal vez como

struct inode{ /* inode number 15 */ link_t nlink; /* nlink = 1 */ ... }

luego crea un enlace fijo (puede ser / 100), la entrada del directorio puede ser como:

struct dentry{ ino_t ino; /* 15 */ char name[256]; /* 100 */ }

la estructura de inodo tal vez como

struct inode{ /* inode numebr 15 */ link_t nlink; /* nlink = 2 */ ... }

luego crea un enlace simbólico (puede ser / 200) al archivo 1, la entrada del directorio puede ser como:

struct dentry{ ino_t ino; /* such as 16 */ char name[256]; /* "200" */ }

la estructura de inodo tal vez como

struct inode{ /* inode number 15 */ link_t nlink; /* nlink = 2 */ ... } struct inode{ /* inode number 16 */ link_t nlink; /* nlink = 1 */ ... } /* the data of inode 16 maybe /1 or 1 */


Una forma sencilla de ver la diferencia entre un enlace físico y un enlace simbólico es a través de un simple ejemplo. Un enlace duro a un archivo apuntará al lugar donde se almacena el archivo, o al inodo de ese archivo. Un enlace simbólico apuntará al archivo en sí.

Entonces, si tenemos un archivo llamado "a" y creamos un enlace físico "b" y un enlace simbólico "c" que se refieren al archivo "a":

echo "111" > a ln a b ln -s a c

La salida de "a", "b" y "c" será:

cat a --> 111 cat b --> 111 cat c --> 111

Ahora eliminemos el archivo "a" y veamos qué sucede con la salida de "a", "b" y "c":

rm a cat a --> No such file or directory cat b --> 111 cat c --> No such file or directory

¿Entonces qué pasó?

Debido a que el archivo "c" apunta al archivo "a" en sí mismo, si el archivo "a" se elimina, el archivo "c" no tendrá nada que señalar, de hecho, también se eliminará.

Sin embargo, el archivo "b" apunta al lugar de almacenamiento, o el inodo, del archivo "a". Por lo tanto, si el archivo "a" se elimina, ya no apuntará al inodo, sino que si el archivo "b" sí lo hace, el inodo continuará almacenando cualquier contenido que pertenezca a "a" hasta que ya no haya más enlaces duros que lo apunten.


Enlace duro Vs El enlace suave puede explicarse fácilmente por esta imagen.


Enlace suave :

suave o simbólico es más que un atajo al archivo original ... si borras el original, el atajo falla y si solo borras el atajo, nada le sucede al original.

Sintaxis de enlace suave : ln -s Pathof_Target_file link

Salida: link -> ./Target_file

Prueba: readlink link También en la salida del ls -l link verá la primera letra en lrwxrwxrwx como l, lo que indica que el archivo es un enlace flexible.

Eliminando el enlace: unlink link

Nota: Si lo desea, su enlace lógico puede funcionar incluso después de moverlo a otro lugar desde el directorio actual. Asegúrese de dar una ruta absoluta y no una ruta relativa al crear un enlace flexible. es decir (a partir de / root / user / Target_file y no ./Target_file)

Enlace duro:

El enlace físico es más una copia duplicada o varias rutas al mismo archivo. Haga algo en file1 y aparecerá en el archivo 2. Al eliminar uno, el otro sigue siendo correcto.

El inodo (o archivo) solo se elimina cuando todos los enlaces (duros) o todas las rutas al inodo (mismo archivo) se han eliminado.

Una vez que se ha hecho un enlace duro, el enlace tiene el inodo del archivo original. Eliminar el cambio de nombre o mover el archivo original no afectará el enlace físico, ya que se vincula al inodo subyacente. Cualquier cambio en los datos en el inodo se refleja en todos los archivos que se refieren a ese inodo.

Sintaxis de enlace duro : ln Target_file link

Salida: Se creará un archivo con un enlace de nombre con el mismo número de inodo que el archivo Targetfile.

Prueba: ls -i link Target_file (verifique sus inodos)

Eliminar el enlace: rm -f link (elimine el enlace como si fuera un archivo normal)

Nota : Los enlaces simbólicos pueden abarcar sistemas de archivos, ya que son simplemente el nombre de otro archivo. Mientras que los enlaces duros solo son válidos dentro del mismo sistema de archivos.

Los enlaces simbólicos tienen algunas características que faltan enlaces duros:

  • Punto de enlace duro al contenido del archivo. mientras que el enlace suave apunta al nombre del archivo.
  • mientras que el tamaño del enlace físico es el tamaño del contenido, mientras que el enlace flexible tiene el tamaño del nombre del archivo.
  • Los enlaces duros comparten el mismo inodo. Los enlaces blandos no lo hacen.
  • Los enlaces duros no pueden cruzar sistemas de archivos. Los enlaces blandos hacen.
  • sabe de inmediato a dónde apunta un enlace simbólico mientras que con enlaces duros, debe explorar todo el sistema de archivos para encontrar archivos que compartan el mismo inodo.
  • Los enlaces duros no pueden apuntar a directorios.

La razón por la que los enlaces físicos no pueden cruzar sistemas de archivos o particiones:

En un disco duro hay muchos sectores.

Digamos que un archivo comienza en el inode (sector) 4001 y termina en 5000. El archivo es "/export/home/john/mail.doc"

Luego: 1. Un enlace fijo a "mail.doc" que se llama "hardLinkToMail" contiene el valor: "4001". 2. Un enlace flexible a "mail.doc" que se llama "softLinkToMail" contiene el valor: "/export/home/john/mail.doc".

En 1) el enlace duro solo puede apuntar al mismo disco. No puede apuntar a otra unidad. Todas las unidades tienen un inodo de valor "4001", ¿cómo puede distinguir el enlace duro entre todos los discos? ¿Qué unidad es "4001"?

En 2) el enlace suave contiene una cadena. La cadena puede apuntar a otro sistema de archivos en otra unidad, porque se especifica la ruta completa.


Los enlaces duros pueden ser útiles, ya que le permite acceder al archivo desde varias ubicaciones diferentes . Accede directamente al inodo. Algunas restricciones son:

  1. Los enlaces duros deben existir todos en el mismo dispositivo.
  2. No podemos crear enlaces duros a directorios.
  3. El número de alias que tiene el archivo original. Cuando se elimina el apellido, también se eliminan los contenidos.

Lo bueno de los enlaces duros es que no existe diferencia entre el primer enlace rígido y el segundo. Ambos son solo enlaces duros, y si se elimina el primer vínculo duro que existió para un archivo, eso no afecta a los otros vínculos físicos que aún existen. El sistema operativo Linux utiliza enlaces en muchas ubicaciones para hacer que los archivos sean más accesibles.

Cuando un enlace simbólico (también conocido como enlace flexible) no se vincula directamente con el inodo sino con el nombre del archivo. La principal desventaja es que cuando se elimina el archivo original, el enlace simbólico deja de ser válido y no funciona. más.

Alguna información sobre Inode:

Linux almacena datos administrativos sobre archivos en inodos. Cada archivo en Linux tiene un inodo, y en el inodo, se almacena información importante sobre el archivo:

  1. El bloque de datos donde se almacenan los contenidos del archivo.
  2. La fecha de creación, acceso y modificación.
  3. Permisos
  4. Propietarios de archivos

Solo una información importante no se almacena en el inodo: el nombre. Los nombres se almacenan en el directorio, y cada nombre de archivo sabe a qué inodo debe dirigirse para acceder a más información del archivo. Es interesante saber que un inodo no sabe qué nombre tiene; solo sabe cuántos nombres están asociados con el inodo. Estos nombres se conocen como enlaces duros. Cuando creas un archivo, le das un nombre. Básicamente, este nombre es un enlace duro.