Резервная символическая ссылка

Резервная символическая ссылка

Есть ли способ для симлинков иметь запасной вариант? Если место назначения не найдено, следует использовать другое.

Я хочу использовать файл конфигурации для программы, который отличается, независимо от того, смонтирован диск или нет. Поэтому я бы создал символическую ссылку на конфигурацию на этом конкретном диске, и если она не будет найдена, она будет использовать альтернативную.

Думаю, я мог бы использовать скрипт-оболочку, который бы проверял, смонтирован ли диск, подключался к нужной конфигурации, а затем запускал приложение, но скрипт-оболочка кажется странным.

решение1

Со стандартными символическими ссылками такого нет. Они всегда указывают на один целевой путь.

Однако в вашем конкретном случае вы можете воспользоваться тем, как диск скрывает монтирование: если вы указываете файл конфигурации на /path/to/mount/config.cnf, то у вас будет один файл в родительской файловой системе (используется, когда монтирование отсутствует), а другой — в смонтированной файловой системе (используется, когда монтирование присутствует).

Но я бы не рекомендовал этого — во-первых, их трудно открыть одновременно, чтобы, например, сравнить. Лично я бы выбрал скрипт-обертку для этого, много раз. Также могут быть способы, специфичные для программы, но вы не назвали программу.

решение2

Вы можете использоватькрепление для союзадля этого. Показ одного файла, если он присутствует в определенном месте, и другого файла, если первый вариант отсутствует, — вот в чем суть объединенных монтирований. Символические ссылки не помогут, за исключением случаев, когда нужно показать файл в месте, отличном от того, где он смонтирован.

mkdir ~/overridden
unionfs-fuse "/media/external:$HOME/overridable" ~/overridden

~/overriddenпоказывает слияние деревьев каталогов в ~/overridableи /media/external. Если файл присутствует в обоих, /media/externalотображается тот, из которого он находится.

Смотрите такжеОбъединение монтирования в Linux(когда кто-то ответит…).

Связанный контент