¿Hay alguna manera de que los enlaces simbólicos tengan respaldo? Si no se encuentra el destino, se debe utilizar otro.
Quiero usar un archivo de configuración para un programa que sea diferente si la unidad está montada o no. Entonces tendría un enlace simbólico a una configuración en esa unidad en particular y, si no la encontrara, usaría una alternativa.
Supongo que podría usar un script contenedor que verificaría si una unidad está montada, vincularía a una configuración deseada y luego ejecutaría la aplicación, pero un script contenedor se siente extraño.
Respuesta1
No hay ninguna manera con los enlaces simbólicos estándar. Siempre apuntan a un único camino objetivo.
Sin embargo, en su caso particular, podría utilizar cómo una unidad oculta un montaje: si apunta el archivo de configuración a /path/to/mount/config.cnf, entonces tendrá uno que está en el sistema de archivos principal (usado cuando el el montaje no está presente) y uno en el sistema de archivos montado (usado cuando el montaje está presente).
Pero no recomendaría eso; por un lado, es difícil abrir ambos a la vez para, por ejemplo, compararlos. Yo personalmente elegiría un script contenedor sobre eso, muchas veces. También puede haber formas específicas del programa, pero no nombró el programa.
Respuesta2
Puedes usar unmontaje de uniónpara esto. Mostrar un archivo si está presente en un lugar determinado y otro archivo si la primera opción no estaba presente es el objetivo de los montajes de unión. Los enlaces simbólicos no ayudarán, excepto para mostrar el archivo en un lugar diferente de donde está el montaje.
mkdir ~/overridden
unionfs-fuse "/media/external:$HOME/overridable" ~/overridden
~/overridden
muestra una combinación de los árboles de directorios bajo ~/overridable
y /media/external
. Cuando un archivo está presente en ambos, /media/external
se muestra el de .
Ver tambiénMontaje de unión en Linux(cuando alguien contesta…).