Existe uma maneira de os links simbólicos terem fallback? Caso o destino não seja encontrado, outro deverá ser utilizado.
Quero usar um arquivo de configuração para um programa que seja diferente, independentemente de a unidade estar montada ou não. Então, eu teria um link simbólico para uma configuração naquela unidade específica e, se não fosse encontrado, usaria uma alternativa.
Acho que poderia usar um script wrapper que verificaria se uma unidade está montada, vincularia a uma configuração desejada e executaria o aplicativo, mas um script wrapper parece estranho.
Responder1
Não há nenhuma maneira com links simbólicos padrão. Eles sempre apontam para um único caminho de destino.
No entanto, no seu caso específico, você pode usar como uma unidade oculta uma montagem: se você apontar o arquivo de configuração para /path/to/mount/config.cnf, então você terá um que está no sistema de arquivos pai (usado quando o mount não está presente) e um no sistema de arquivos montado (usado quando o mount está presente).
Mas eu não recomendaria isso – por um lado, é difícil abrir os dois ao mesmo tempo para, por exemplo, compará-los. Eu pessoalmente optaria por um script wrapper sobre isso, muitas vezes. Também pode haver formas específicas do programa, mas você não nomeou o programa.
Responder2
Você pode usar ummontagem sindicalpor esta. Mostrar um arquivo se estiver presente em um determinado local e outro arquivo se a primeira opção não estiver presente é o objetivo das montagens de união. Os links simbólicos não ajudarão, exceto para mostrar o arquivo em um local diferente de onde está a montagem.
mkdir ~/overridden
unionfs-fuse "/media/external:$HOME/overridable" ~/overridden
~/overridden
mostra uma mesclagem das árvores de diretórios em ~/overridable
e /media/external
. Quando um arquivo está presente em ambos, o de /media/external
é mostrado.
Veja tambémMontagem Union no Linux(quando alguém atende…).