符号链接源目标混淆

符号链接源目标混淆

每次我尝试设置符号链接(symlink)时,我都会挣扎让我明白符号链接源和目标。

我已经尝试了几种方法,但仍然失败。

让我解释。 BackupPC v4.4.0/var/lib/BackupPC默认存储备份。 BackupPC 安装说明建议使用符号链接,以便将来的更新不会覆盖备份目录位置 ( /var/lib/BackupPC)。

我想将它们存储在/dataR6目录中。 (raid 6 阵列。)

因此,其中的 BackupPC 存储/var/lib/BackupPC将链接到 中的存储/dataR6。客户端备份存储在/dataR6(目录。)

两个目录已经存在

我读过了:创建相对于当前目录的符号链接

我读到了这个:https://stackoverflow.com/questions/9104337/create-a-symbolic-link-of-directory-in-ubuntu/9104384#9104384

但是,我仍然无法正确连接链接。

所以,我的“源和目标”问题是,在上述情况下,哪个是源,哪个是目标?我在想“源”=/var/lib/BackupPC和“目标”= /dataR6?还是我落后了?

符号链接对我来说是一个循环斗争,其中 is 和 is非常令人困惑。 (也许我脑死亡了?)

答案1

如果您想/var/lib/BackupPC指向并相当于 target /dataR6,则需要将其替换为符号链接

cd /var/lib
mv BackupPC BackupPC.dir
ln -s /dataR6 BackupPC

答案2

“源”和“目标”之间混淆的一个相关来源可能是文档本身。根据POSIX,“target”是要创建的链接(或正在创建的目录链接):

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

罗艾玛的回答以便您在实践中需要做的事情。

相关内容