sistema Linux, la distinción entre "soft links" y "enlace duro" de

Sabemos que el archivo de datos tiene un nombre de archivo, que en  Linux  se divide en dos partes: los datos de usuario (datos de usuario) y metadatos (metadatos). Los datos de usuario, es decir, el bloque de datos (bloque de datos), el bloque de datos es un contenido del archivo de registro local son verdaderas; metadatos son archivo de atributos adicionales, tales como el tamaño de archivo, la hora de creación, propietario, y similares. En Linux, el número de inodo metadatos (i-nodo es parte del archivo de metadatos, pero no incluye el nombre del archivo, el número de i-nodo que es el número de nodo-i) que identifica de forma exclusiva el archivo en lugar del nombre de archivo es. El nombre del archivo es sólo para la conveniencia de memoria de la gente y utilizar el sistema para encontrar los archivos de datos o programa de bloques correctos a través del número de inodo. Y hay una manera de encontrar rápidamente el elemento de datos, y que son los enlaces blandos y duros, echemos un vistazo a él.

¿Cuál es el vínculo?

Enlaces a decir es en realidad una forma sencilla de compartir archivos es un concepto en POSIX, los principales sistemas de archivos compatibles con vínculo de archivo.

Se utiliza para hacer?

Puede enlazar simplemente entendida como el acceso directo comunes de Windows (o alias en OS X), Linux comúnmente utilizado para resolver algunos de la versión de biblioteca del problema, a menudo añadir enlaces a los archivos de directorio a un nivel más profundo directorio más accesible. En estas aplicaciones, que suelen utilizar enlaces de software (también conocidos como enlaces simbólicos).

contenido

Diferencia entre los enlaces blandos y duros son enlaces?
Aquí entramos en, al explorar los vínculos duros y blandos al final lo que es la diferencia?

En primer lugar, desde la perspectiva de la utilización de hablar, no hay diferencia entre los dos son lo mismo que el acceso a los archivos normales, la lectura y la escritura de apoyo, si lo es, entonces el archivo ejecutable puede ser ejecutado directamente.

Que la diferencia entre lo que? En principio subyacente.

Para explicar, primero creamos un archivo en el directorio de trabajo y, a continuación, vincular a la creación del archivo:

$ Toque mi_archivo && echo "Este es un archivo de texto plano." > Miarchivo 
$ cat mi_archivo 

Este es un archivo de texto plano.

Ahora hemos creado un terreno común ya no podemos archivos normales. Entonces se crea un vínculo físico a la misma, y ​​observe el directorio actual:

$ Ln mi_archivo duros 
$ ls -li 

25869085 -rw-r - r-- 2 del personal unixzii 27 7 8 17:39 dura 
25869085 -rw-r - r-- 2 unixzii personal 27 7 8 17:39 mi_archivo

En la columna de la izquierda de ls resultado, el valor del archivo inode, sólo tiene que pensar en él como el puntero del lenguaje C. Apunta a un bloque de disco duro físico, de hecho, el sistema de archivos mantiene un recuento de referencia, siempre que el archivo que apunta a este bloque, que no van a desaparecer desde el disco duro.

Como se puede ver, estos dos documentos como un archivo con el mismo valor de i-nodo, todos apuntan al mismo bloque.

A continuación, hemos cambiado un poco difícil enlace al archivo que acaba de crear:

$ Echo "Nueva línea" dura >> 
$ cat mi_archivo 

Este es un archivo de texto plano. 
Nueva línea

Se puede ver, estos dos documentos es realmente un archivo. Aquí nos fijamos en los enlaces blandos (es decir, enlaces simbólicos), y no tiene ninguna diferencia.

$ ln -s myfile soft
$ ls -li

25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 hard
25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 myfile
25869216 lrwxr-xr-x 1 unixzii staff 6 7 8 17:47 soft -> myfile

诶,你会发现,这个软链接的 inode 竟然不一样啊,并且它的文件属性上也有一个 l 的 flag,这就说明它与之前我们创建的两个文件根本不是一个类型。

下面我们试着删除 myfile 文件,然后分别输出软硬链接的文件内容:

$ rm myfile
$ cat hard

This is a plain text file.
New line
$ cat soft

cat: soft: No such file or directory

之前的硬链接没有丝毫地影响,因为它 inode 所指向的区块由于有一个硬链接在指向它,所以这个区块仍然有效,并且可以访问到。 然而软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径,然而这个文件已经被删除了,所以自然就会显示无法找到该文件了。

为验证这一猜想,我们再向这个软链接写点东西:

$ echo "Something" >> soft
$ ls

hard myfile soft

Podemos ver, basta con borrar el archivo mi_archivo realidad aparecido! Esto demuestra que cuando escribimos acceso enlaces de software, el sistema reemplaza automáticamente a su paso, ya que representa la ruta absoluta, y el camino de acceso directo.

resumen

Resumimos
aquí podemos resumir el hecho de:

Enlaces fijos: el archivo no es diferente de lo ordinario, ínodo bloquear todos apuntan al mismo archivo en el disco duro de
enlace blando: Guardar la ruta absoluta del archivo que representa, es otro documento, un bloque separado en el disco duro, el acceso al sustituir el propio camino.


Supongo que te gusta

Origin blog.51cto.com/14414295/2481888
Recomendado
Clasificación