10 Enlaces simbólicos (symlinks)
Es mejor crear enlaces simbólicos (symlinks) en vez de copiar cada archivo, ya que permite ahorrar mucho espacio en el disco al evitar la multiplicación de copias fisicas en el disco duro del mismo archivo.
Una modificación realizada utilizando este enlace se reflejará en el original; pero, por el contrario, si se elimina el enlace, no se eliminará el auténtico.
10.1 Diferencias entre enlaces simbólicos (symlinks) y enlaces duros (hard links)
Características | Symlinks | Hard links |
---|---|---|
Almacenamiento |
|
|
Número de inodo | Cuenta con un número de inodo (nodo indice) diferente del archivo original. Se identifica como un tipo de archivo diferente. | Comparte el mismo número de inodo con el destino. Elimina el concepto de “archivo original”; todos los hard links al mismo archivo son iguales. |
Eliminación del archivo original | Si el archivo original se elimina, el symlink queda roto (es decir, apunta a algo inexistente). | Si un hard link se elimina, los datos del archivo permanecen accesibles mientras existan otros hard links. |
Sistema de archivos. | Puede apuntar a archivos o directorios, incluso en diferentes sistemas de archivos. | Deben residir en el mismo sistema de archivos. |
Rutas | Se pueden usar rutas absolutas o relativas para la referencia. | No puede enlazar directorios (en la mayoría de los sistemas modernos) ni cruzar sistemas de archivos diferentes. |
Uso común |
|
|
Comando para crear |
|
|
Debes tener cuidado al elegir cuál utilizar. Los enlaces simbólicos son más convenientes cuando trabajamos con datos importantes que están almacenados en un respaldo, ya que permiten acceder fácilmente a los archivos originales sin duplicarlos y facilitan la gestión de rutas, sin eliminar o afectar los archivos originales.
10.2 Orden de los archivos
El sistema de archivos de GNU/Linux tiene una estructura jerárquica de directorios y subdirectorios que penden del directorio raíz /
. Esta estructura puede ser visualizada convenientemente con el comando tree
(Nota: tree
tal vez no esté instalado en tu sistema).
Organizar tu entorno de trabajo en Bash siguiendo buenas prácticas te permitirá gestionar tus archivos y scripts de manera eficiente. Aquí tienes una sugerencia de carpetas clave y nombres que puedes utilizar:
~/workspace/
├── bin/ # Scripts ejecutables
├── src/ # Código fuente
├── logs/ # Archivos de registro
├── config/ # Configuración
├── data/
│ ├── raw/ # Datos crudos
│ └── processed/ # Datos procesados
├── backup/ # Copias de seguridad
├── tmp/ # Archivos temporales
├── projects/
│ └── project_name/
├── git/ # Repositorios locales
└── docs/ # Documentación
10.2.1 Consejos adicionales
Usa nombres descriptivos: Los nombres de las carpetas y archivos deben reflejar su contenido claramente.
Mantén consistencia: Usa un esquema de nombres uniforme (por ejemplo, todo en minúsculas o con guiones bajos).
Automatiza la limpieza: Utiliza scripts en Bash para eliminar archivos temporales o rotar logs antiguos.
Usa control de versiones: Integra Git en tus proyectos para mantener un historial de cambios en tus scripts.
Esta estructura es flexible y se puede ajustar según tus necesidades específicas.