Hay 2 tipos de enlaces que puede crear dentro de Linux:
- Enlaces duros
- Enlaces simbólicos
Un enlace simbólico es muy parecido a un acceso directo al escritorio dentro de Windows. El enlace simbólico simplemente apunta a la ubicación de un archivo.
La eliminación de un enlace simbólico no tiene ningún efecto sobre el archivo físico al que apunta el enlace.
Un enlace simbólico puede apuntar a cualquier archivo del sistema de archivos actual o de otros sistemas de archivos. Esto lo hace más flexible que un eslabón duro.
Un enlace duro es en realidad el mismo archivo al que enlaza pero con un nombre diferente. La manera más fácil de pensar en ello es la siguiente:
Imagina que naciste con el nombre Robert. Otras personas pueden conocerte como Robbie, Bob, Bobby o Rob. Cada persona estaría hablando de la misma persona.
Cada enlace añade 1 a un contador de enlaces, lo que significa que para eliminar el archivo físico hay que eliminar todos y cada uno de los enlaces.
Índice de contenidos
¿Por qué usar enlaces duros?
Los enlaces duros proporcionan una forma eficaz de organizar los archivos. La forma más fácil de describir esto es con un viejo episodio de Plaza Sésamo.
Bert le dijo a Ernie que ordenara todas sus cosas y así Ernie se puso a hacer su tarea. En primer lugar, decidió ordenar todas las cosas rojas. «El camión de bomberos es rojo». Así que Ernie guarda el camión de bomberos.
Luego Ernie decide guardar todos los juguetes con ruedas. El camión de bomberos tiene ruedas. Así que Ernie limpió el camión de bomberos.
No hace falta decir que Bert llega a casa y encuentra exactamente el mismo desastre que antes, pero Ernie había limpiado el camión de bomberos media docena de veces.
Imagine que el camión de bomberos era sólo la imagen de un camión de bomberos. Usted puede tener diferentes carpetas en su máquina de la siguiente manera:
- Fotos de cosas rojas
- Fotos de vehículos
- Fotos de los servicios de emergencia
Ahora puede crear una copia de la foto y colocarla en cada una de las carpetas. Esto significa que tiene tres copias del mismo archivo que ocupan tres veces el espacio.
Es posible que la categorización de las fotos mediante la realización de copias no ocupe demasiado espacio, pero si intentara lo mismo con los vídeos, reduciría considerablemente el espacio en disco.
Un eslabón duro no ocupa ningún espacio. Por lo tanto, puede almacenar el mismo vídeo en varias categorías diferentes (es decir, por año, género, reparto, directores) sin reducir el espacio en disco.
Cómo crear un enlace duro
Puede crear un enlace duro utilizando la siguiente sintaxis:
ln path/to/file /path/to/hard/link
Por ejemplo, en la imagen de arriba tenemos una carpeta de música de Alice Cooper llamada Trash in the path /home/gary/Music/Alice Cooper/Trash. En esa carpeta hay 10 canciones, una de las cuales es el clásico Poison.
Ahora Poison es una pista de rock, así que creamos una carpeta llamada Rock debajo de la carpeta de música y creamos un enlace duro a Poison escribiendo el siguiente archivo:
ln "01 - Poison.mp3" "~/Music/rock/Poison.mp3"
Esta es una buena manera de organizar la música.
Cómo distinguir entre un enlace duro y uno simbólico
Puede saber si un archivo tiene un enlace duro usando el comando ls:
ls -lt
Un archivo estándar sin enlaces tendrá el siguiente aspecto
-rw-r–r– 1 gary gary 1000 Dic 18 21:52 poison.mp3
Las columnas son las siguientes:
- rw-r–r–r– = permisos
- 1 = número de enlaces
- gary = grupo
- gary = propietario
- 1000 = tamaño del archivo
- 18 de diciembre = fecha
- 21:52 = hora
- poison.mp3 = nombre de archivo
Si este fuera un eslabón duro, el resultado sería el siguiente:
-rw-r–r– 2 gary gary 1000 Dic 18 21:52 poison.mp3
Note que la columna de número de enlaces muestra 2. Cada vez que se crea un enlace duro, ese número aumentará.
Un enlace simbólico tendrá el siguiente aspecto:
Puede ver claramente que un archivo está apuntando a otro.
Cómo encontrar todos los enlaces a un archivo
Todos los archivos en su sistema Linux contienen un número de inode que identifica el archivo de forma única. Un archivo y su enlace duro contendrán el mismo inodo.
Para ver el número de inode de un archivo, escriba el siguiente comando:
ls -i
La salida para un solo archivo será la siguiente:
1234567 nombre de archivo
Para encontrar los enlaces duros de un archivo sólo tiene que hacer una búsqueda de todos los archivos con el mismo inode (es decir, 1234567).
Puede hacerlo con el siguiente comando:
find ~/ -xdev -inum 1234567