Wikipedia define un enlace duro como:
una entrada de directorio que asocia un nombre con un archivo en un sistema de archivos. (Un directorio es en sí mismo un tipo especial de archivo que contiene una lista de tales entradas). El término se usa en sistemas de archivos que permiten crear múltiples enlaces duros para el mismo archivo.
Me pregunto si el concepto de enlace duro es equivalente al concepto de acceso directo de Windows .
Si los enlaces duros no son equivalentes a los accesos directos, ¿cuál es la característica de Windows más cercana a los enlaces duros?
Respuestas:
No, un enlace duro es completamente diferente. Un enlace suave está más cerca de un acceso directo de Windows (aunque existen diferencias importantes, los enlaces simbólicos son más similares a los accesos directos de Windows que los enlaces duros). Un enlace duro es algo diferente y uno que casi nunca necesitará.
Brevemente, se crea un enlace suave con este comando:
Si luego corres
ls -l
, verás:El
->
medio quebar
es un enlace afoo
. Entonces, abrirbar
, con un editor de texto, por ejemplo, en realidad abrirá el archivo por separadofoo
. Sin embargo, la eliminaciónbar
solo eliminará el acceso directo, no afectará el archivofoo
.Los enlaces duros, por otro lado, se crean con este comando:
Si ahora ejecuta
ls -l
, no hay indicios de ninguna relación entre los archivos:Pero, y esto es muy importante, en realidad son el mismo archivo . Los archivos en los sistemas de archivos Unix se almacenan usando inodes ; Un inodo es básicamente la forma en que el sistema de archivos asigna un nombre de archivo a una ubicación particular en el disco duro físico. Entonces, los enlaces duros son archivos que apuntan al mismo inodo que su destino. Otra forma de decir esto es que todos los archivos son en realidad enlaces duros que apuntan a sus inodos. Hacer un enlace duro a un archivo solo crea un nuevo puntero (archivo) en el sistema de archivos que apunta al mismo inodo. Cada inodo puede tener múltiples archivos apuntando a él o uno, o ninguno.
Para entender esto más claramente, use
ls -i
que muestra el inodo asociado con un archivo. Creemos un enlace suave y un enlace duro y veamos qué sucede:Ahora, verifique sus inodos:
Como se puede ver arriba, tanto
foo
yHardLinkToFoo
tienen el mismo inodo (16648029), mientras que SoftLinkToFoo tiene una diferente (16648036).¿Qué sucede si cambiamos el nombre
foo
conmv foo bar
?El color rojo indica un enlace blando roto, uno cuyo objetivo ya no se puede encontrar. Esto se debe a que los enlaces suaves apuntan al nombre de un archivo, no a su inodo. Tenga en cuenta que a pesar de cambiar el nombre, el inodo sigue siendo el mismo, por lo que el enlace duro está bien, aún funciona.
En resumen, los enlaces duros son en realidad dos manifestaciones del mismo archivo; son punteros a la misma sección del disco. Los enlaces blandos son solo atajos. Para tomar una analogía del mundo real, los enlaces duros son como dos números de teléfono diferentes para la misma línea telefónica y los enlaces suaves son como tener dos líneas telefónicas diferentes en la misma casa.
fuente
rm
ounlink()
) un enlace duro solo disminuye el recuento de enlaces hasta que el recuento de enlaces llegue a cero, cuando se liberan los bloques ocupados por el contenido del archivo. No estoy seguro de que decir "los enlaces duros son en realidad dos instancias del mismo archivo" es estrictamente correcto, ya que los dos nombres apuntan al mismo inodo y, por lo tanto, al mismo contenido, en lugar de que haya dos instancias del mismo archivo en cualquier sentido.Hay una buena explicación de qué son los enlaces blandos y duros, pero hay que aclarar una cosa.
Ventanas atajos son equivalentes o similares a ni enlaces blandos ni enlaces duros . En el nivel del sistema de archivos son solo archivos. Es el shell que entiende su estructura y los interpreta como enlaces. Los accesos directos de Windows también pueden apuntar a objetos en espacios de nombres de shell que no están relacionados con el sistema de archivos (impresoras, elementos del panel de control, carpetas virtuales).
Los accesos directos de Windows, además del nombre del objeto del sistema de archivos, contienen la siguiente información: PIDL ("ruta" binaria opaca dentro del espacio de nombres de shell), descripción, tecla de acceso rápido, icono, directorio de trabajo. Windows también agrega identificadores de objetos NTFS si se utiliza el sistema de archivos NTFS, para corregir atajos rotos.
El equivalente aproximado de un acceso directo de Windows es un archivo .desktop . Vea esta pregunta en SuperUser: ¿Hay un equivalente de .lnk en Linux?
fuente
No. En Linux las cosas funcionan de manera diferente.
Cada archivo está representado por un objeto llamado 'inodo'. Cada inodo tiene un número (ID) asociado.
Como sabemos, los humanos no son buenos para recordar números sino nombres. (Así evolucionaron las guías telefónicas)
Por lo tanto, el nombre de archivo entró en la imagen para dar a cada inodo un nombre legible por humanos. Básicamente, un enlace duro une un nombre de archivo a un inodo. Un inodo puede tener múltiples enlaces duros. Si no hay enlaces duros presentes para un inodo en particular, el espacio en disco utilizado por el inodo puede reasignarse para nuevos archivos. Lo que significa que debe presentarse al menos un enlace duro para cada archivo. El nombre de archivo (visualizado como el nombre de archivo / icono que ve en el explorador de archivos) en sí mismo es un enlace duro.
En Windows, el acceso directo es un archivo separado (archivo * .lnk). Contiene información sobre el archivo original (comprensiblemente, la ruta del archivo). En la percepción de Linux, un acceso directo de Windows sería otro inodo vinculado a un nombre de archivo que termina con '.lnk'.
fuente
En Windows también puede crear enlaces duros si tiene un sistema de archivos NTFS.
Los archivos deben estar en la misma unidad lógica.
fuente
subst
comando. Sin embargo, es posible que una herramienta no sepa / no se preocupe por esto y, por lo tanto, se niegue a crear un enlace duro. Una cosa muy útil es la Extensión Link Shell que permite al explorador crearlos.Una gran diferencia, el enlace duro no se puede crear para carpetas, sino para archivos.
Su pregunta debe ser la diferencia entre enlace simbólico o enlace suave y acceso directo .
según esto:
Entonces, cuando hace clic en un acceso directo, su directorio cambiará al archivo real, mientras que el enlace suave se referirá a su ubicación como si fuera el archivo real, para eso en Linux puede usar terminal y cd para enlaces simbólicos mientras no puede cd a accesos directos .
Un acceso directo de Windows y un iniciador de Linux (apuntando a alguna ubicación) serían idénticos.
fuente