符號連結回退

符號連結回退

有沒有辦法讓符號連結有後備?如果未找到目的地,則應使用另一個目的地。

我想為一個程式使用一個配置文件,無論是否安裝了驅動器,該配置文件都是不同的。因此,我將擁有指向該特定驅動器上的配置的符號鏈接,如果找不到,它將使用替代驅動器。

我想我可以使用包裝腳本來檢查驅動器是否已安裝,連結到所需的配置,然後運行應用程序,但包裝腳本感覺很奇怪。

答案1

標準符號連結沒有任何辦法。它們始終指向單一目標路徑。

但是,在您的特定情況下,您可以利用磁碟機陰影安裝的方式:如果您將設定檔指向 /path/to/mount/config.cnf,那麼您就有一個位於父檔案系統上的檔案系統(當mount 不存在)和已掛載的檔案系統上的一個(當掛載存在時使用)。

但我不建議這樣做——一方面,很難同時打開它們來進行比較。我個人會多次選擇一個包裝腳本。可能還有特定於程式的方法,但您沒有命名該程式。

答案2

您可以使用聯合安裝為了這。如果某個位置存在則顯示一個文件,如果第一個選擇不存在則顯示另一個文件,這就是聯合掛載的全部意義。符號連結沒有幫助,除非在與安裝位置不同的位置顯示檔案。

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

~/overridden~/overridable顯示和下目錄樹的合併/media/external。當兩者中都存在某個文件時,/media/external將顯示來自的文件。

也可以看看Linux 上的聯合掛載(當有人回答時......)。

相關內容