符號連結源目標混淆
每次我嘗試設置符號連結(符號連結)時,我都會努力了解符號連結源和目標。
我已經嘗試了幾種方法,但它仍然失敗。
讓我解釋。BackupPC v4.4.0
/var/lib/BackupPC
預設儲存備份。BackupPC 安裝說明建議使用符號連結,以便將來的更新不會覆蓋備份目錄位置 (/var/lib/BackupPC
)。我想將這些儲存在
/dataR6
目錄中。(RAID 6 陣列。)因此,BackupPC 儲存在
/var/lib/BackupPC
其中將連結到儲存在/dataR6
. 客戶端備份儲存在/dataR6
(目錄。)這兩個目錄都已經存在。
我已閱讀:創建相對於目前目錄的符號連結
但是,我仍然無法正確連接連結。
所以,我的“源和目標”問題是,在上述情況下,哪個是源,哪個是目標?我在想“來源”=
/var/lib/BackupPC
和“目標”=/dataR6
?還是我倒退了?對我來說,符號連結是一個循環的鬥爭,其中哪個是非常令人困惑的。(也許我腦死了?)
如果要
/var/lib/BackupPC
指向 target 並與之等效/dataR6
,則需要將其替換為符號連結cd /var/lib mv BackupPC BackupPC.dir ln -s /dataR6 BackupPC
“源”和“目標”之間混淆的一個相關來源可能是文件本身。根據POSIX,“目標”是要創建的連結(或正在創建的目錄連結):
ln [-fs] [-L|-P] source_file target_file
$$ … $$
描述
在第一個概要形式中,
ln
實用程序應在target_file
操作數指定的目標路徑處創建一個新的目錄條目(連結)。$$ … $$根據GNU 手冊頁,“目標”是連結指向的文件:
ln [OPTION]... [-T] TARGET LINK_NAME
$$ … $$
描述
在第一種形式中,使用名稱 LINK_NAME 創建指向 TARGET 的連結。$$ … $$
避免使用這兩個詞並考慮“文件”(您的數據)和“連結”(文件的替代名稱)可能會更容易。
此外,考慮到(一個參數)在目前工作目錄中
ln -s /path/to/file
創建一個連結,可能會產生一些助記符幫助。/path/to/file
在這種形式中,不能省略的參數是文件,因此最好是第一個。然後,您可以考慮將符號連結創建為
ln -s the_data a_link_to_it
(其中a_link_to_it
也可以讀作“數據的另一條路徑”)。符號連結的方便使用是支持正常路徑的定義:在您的情況下,
/var/lib/BackupPC
是 BackupPC 配置使用的路徑,並且將其定義為符號連結允許程序工作,即使實際數據位於其他地方。因此,您需要的是
ln -s /dataR6 /var/lib/BackupPC
,/dataR6
“數據”在哪里以及“獲取數據/var/lib/BackupPC
的另一種方式”。請參閱roaima 的答案,了解您在實踐中需要做什麼。