未创建符号链接

Posted

技术标签:

【中文标题】未创建符号链接【英文标题】:Symlink not being created 【发布时间】:2017-06-10 03:33:35 【问题描述】:

我正在一台带有小型 SSD 和大型 HDD 的笔记本电脑上运行 Fedora。我已经在 SSD 上安装了操作系统,在 HDD 上安装了我的数据。

我所有的文件都位于/run/media/kennedy/data/Kennedy

我之前拥有(并且再次想要)是从/home/kennedy 到该位置的符号链接。这样我就不会弄乱实际的/home,但是当我作为普通用户在/home 中时,我所有的东西都可以很容易地访问和存储,并且有足够的空间。现在/home/kennedy 有标准目录;桌面、文档、下载等。没有值得担心的文件。

于是我打开一个shell,以su身份登录,然后进入

ln -s /home/kennedy /run/media/kennedy/data/Kennedy

期待当我cd /home/kennedyls 时,我会看到我所有的可爱。相反,我看到的是标准文件夹,仅此而已。威士忌探戈狐步舞,结束。

编辑添加:我很确定权限是正确的,但只是很确定。如何检查和更正它(如果关闭)?

【问题讨论】:

【参考方案1】:

你必须颠倒参数:

ln -s /run/media/kennedy/data/Kennedy /home/kennedy

这将:

如果/home/kennedy 不存在则成功运行(kennedy 将是新的符号链接) 如果/home/kennedy 存在且不是目录(符号链接或常规文件)则失败;在这种情况下需要添加 -f 标志 - ls -sf ... 如果/home/kennedy是一个目录,那么符号链接将被创建为/home/kennedy/kennedy

查看此相关帖子:How to symlink a file in Linux?

【讨论】:

也许我不清楚。 /home/kennedy 不是我创建的目录,它是为用户“kennedy”创建的目录,因此,当以 kennedy 身份登录并在 GUI 中查看 /home 时,您实际上会看到 /home/kennedy 的内容。我想要发生的是,当用户查看该目录时,他们会看到/run/media/kennedy/data/Kennedy 的内容。我不想打开 /home/kennedy 并查看符号链接。目录/home/kennedy 应该只是 HDD 目录的一个窗口。我需要删除目录 kennedy 并创建符号链接吗? 我不确定/home/kennedy 中已有哪些内容。因此,使用mv /home/kennedy /home/kennedy.old 比删除它更谨慎。【参考方案2】:

你有向后的命令,它应该是:

ln -s /run/media/kennedy/data/Kennedy kennedy

当您在 /home 目录中时调用该命令,那么您应该已经设置好了。

【讨论】:

以上是关于未创建符号链接的主要内容,如果未能解决你的问题,请参考以下文章

Linux 共享库链接错误(未定义符号)

未定义的符号引用,但库已链接

C ++链接错误未解决的外部符号

将弱符号和局部符号链接在一起时,可能的 GCC 链接器错误会导致错误

MFC 静态链接未解析的外部符号

Fortran & Matlab 链接——未定义的符号