Есть ли способ для симлинков иметь запасной вариант? Если место назначения не найдено, следует использовать другое.
Я хочу использовать файл конфигурации для программы, который отличается, независимо от того, смонтирован диск или нет. Поэтому я бы создал символическую ссылку на конфигурацию на этом конкретном диске, и если она не будет найдена, она будет использовать альтернативную.
Думаю, я мог бы использовать скрипт-оболочку, который бы проверял, смонтирован ли диск, подключался к нужной конфигурации, а затем запускал приложение, но скрипт-оболочка кажется странным.
решение1
Со стандартными символическими ссылками такого нет. Они всегда указывают на один целевой путь.
Однако в вашем конкретном случае вы можете воспользоваться тем, как диск скрывает монтирование: если вы указываете файл конфигурации на /path/to/mount/config.cnf, то у вас будет один файл в родительской файловой системе (используется, когда монтирование отсутствует), а другой — в смонтированной файловой системе (используется, когда монтирование присутствует).
Но я бы не рекомендовал этого — во-первых, их трудно открыть одновременно, чтобы, например, сравнить. Лично я бы выбрал скрипт-обертку для этого, много раз. Также могут быть способы, специфичные для программы, но вы не назвали программу.
решение2
Вы можете использоватькрепление для союзадля этого. Показ одного файла, если он присутствует в определенном месте, и другого файла, если первый вариант отсутствует, — вот в чем суть объединенных монтирований. Символические ссылки не помогут, за исключением случаев, когда нужно показать файл в месте, отличном от того, где он смонтирован.
mkdir ~/overridden
unionfs-fuse "/media/external:$HOME/overridable" ~/overridden
~/overridden
показывает слияние деревьев каталогов в ~/overridable
и /media/external
. Если файл присутствует в обоих, /media/external
отображается тот, из которого он находится.
Смотрите такжеОбъединение монтирования в Linux(когда кто-то ответит…).