![符号链接回退](https://linux22.com/image/95245/%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E5%9B%9E%E9%80%80.png)
有没有办法让符号链接有后备?如果未找到目的地,则应使用另一个目的地。
我想为一个程序使用一个配置文件,无论是否安装了驱动器,该配置文件都是不同的。因此,我将拥有指向该特定驱动器上的配置的符号链接,如果找不到,它将使用替代驱动器。
我想我可以使用一个包装脚本来检查驱动器是否已安装,链接到所需的配置,然后运行应用程序,但包装脚本感觉很奇怪。
答案1
标准符号链接没有任何办法。它们始终指向单一目标路径。
但是,在您的特定情况下,您可以利用驱动器阴影安装的方式:如果您将配置文件指向 /path/to/mount/config.cnf,那么您就有一个位于父文件系统上的文件系统(当mount 不存在)和已挂载的文件系统上的一个(当挂载存在时使用)。
但我不建议这样做——一方面,很难同时打开它们来进行比较。我个人会多次选择一个包装脚本。可能还有特定于程序的方法,但您没有命名该程序。
答案2
您可以使用联合安装为了这。如果某个位置存在则显示一个文件,如果第一个选择不存在则显示另一个文件,这就是联合挂载的全部意义。符号链接没有帮助,除非在与安装位置不同的位置显示文件。
mkdir ~/overridden
unionfs-fuse "/media/external:$HOME/overridable" ~/overridden
~/overridden
~/overridable
显示和下目录树的合并/media/external
。当两者中都存在某个文件时,/media/external
将显示来自的文件。
也可以看看Linux 上的联合挂载(当有人回答时......)。