为什么当我使用文件系统 GUI 时无法跟踪符号链接,但在终端中一切正常?

为什么当我使用文件系统 GUI 时无法跟踪符号链接,但在终端中一切正常?

我决定采用专用的 home/data 分区方式进行我的第一个多重引导配置,因此有一堆符号链接链接到我安装该分区的位置。终端中一切正常,但当我使用 GUI 时,它只会打开另一个窗口而不遵循链接。

示例:我单击主文件夹中名为“Documents”的符号链接,该符号链接应链接到专用分区上的“Documents”文件夹,但却弹出主文件夹的另一个窗口。

此外,当我第一次保存文件并希望通过符号链接导航到某个位置时,符号链接被视为文件而不是目录。当我单击一个符号链接以跟随它时,要保存的文件的名称将更改为符号链接的名称。

我使用带有的终端创建了符号链接ln -s,并且在 Mint 17 中管理了相同的过程,GUI 没有任何问题。

为评论问题提供的附加信息:

XDG_CURRENT_DESKTOP=Unity

符号链接是绝对链接。

我注意到的一件事是,第一次打开 Files(登录后立即打开)时,所有链接都有效。只要我按照(除非我在新标签页中打开),他们全部停止工作。我可以重命名符号链接,然后它开始工作,但只有在我再次跟踪它时才会开始工作。一旦我跟踪符号链接,肯定会发生一些变化,因为当我返回时,符号链接不再按字母顺序与其他目录排列,而是按字母顺序与其他文件排列。当我重命名一个时,这似乎使它再次表现得像一个目录,因为它会移动到与其他“常规”目录按字母顺序排列。

也许有人知道一旦我更改符号链接的名称或跟随它,文件或某些东西就会被修改......?

$ ls -l
total 48
drwxrwxr-x 1 funkyrailroad funkyrailroad  13 Mud  1 15:54 backup
lrwxrwxrwx 1 funkyrailroad funkyrailroad  41 Mud  1 15:18 Desktop -> /mnt/temp/SnowLeopard/localadmin/Desktop/
lrwxrwxrwx 1 funkyrailroad funkyrailroad  43 Mud  1 15:18 Documents -> /mnt/temp/SnowLeopard/localadmin/Documents/
lrwxrwxrwx 1 funkyrailroad funkyrailroad  42 Mud  1 20:44 Downloads -> /mnt/temp/SnowLeopard/localadmin/Downloads
lrwxrwxrwx 1 funkyrailroad funkyrailroad  39 Mud  1 15:19 eBooks -> /mnt/temp/SnowLeopard/localadmin/eBooks
lrwxrwxrwx 1 funkyrailroad funkyrailroad  45 Mud  1 15:21 Google Drive -> /mnt/temp/SnowLeopard/localadmin/Google Drive
drwxrwxr-x 1 funkyrailroad funkyrailroad   2 Mud  5 20:55 made in terminal
lrwxrwxrwx 1 funkyrailroad funkyrailroad  38 Mud  1 15:21 Music -> /mnt/temp/SnowLeopard/localadmin/Music
lrwxrwxrwx 1 funkyrailroad funkyrailroad  41 Mud  1 15:21 Pictures -> /mnt/temp/SnowLeopard/localadmin/Pictures
lrwxrwxrwx 1 funkyrailroad funkyrailroad  38 Mud  1 21:01 Public -> /mnt/temp/Ubuntu/funkyrailroad/Public/
-rw-rw-r-- 1 funkyrailroad funkyrailroad 401 Mud  1 21:03 steps
-rw-rw-r-- 1 funkyrailroad funkyrailroad 406 Mud  1 17:32 steps~
lrwxrwxrwx 1 funkyrailroad funkyrailroad  40 Mud  1 20:54 Templates -> /mnt/temp/Ubuntu/funkyrailroad/Templates
lrwxrwxrwx 1 funkyrailroad funkyrailroad  39 Mud  1 21:00 Videos -> /mnt/temp/SnowLeopard/localadmin/Movies

我通过编辑 fstab 挂载了数据分区。它是非日志式 hfs plus 格式,因为我希望 mac os x 能够读取它,由于缺乏深思熟虑,我将挂载它的目录命名为“temp”。我以前通过它的 UUID 访问它,但我一定是做了一些奇怪的事情,那个分区不再有 UUID,至少在我运行 blkid 时它没有显示,所以我按照它的 /dev/sdax 名称进行操作。/etc/fstab 中的相关条目是:

/dev/sda3 /mnt/temp hfsplus rw 0 2

我在 Mint 分区上(同时在 Zorin 上)有完全相同的设置,我可以使用 GUI 跟踪符号链接,没有任何问题。UUID 的混乱也影响了我的其他设置,但这些设置似乎仍然有效,所以我倾向于认为问题出在其他地方……

答案1

我不确定这是否会是一个答案,但在阅读并发表一些评论后,我有更多的想法,而且对于评论来说太多了。

由于我并不确切知道您对安装驱动器了解多少,因此有时我可能会过于补救,所以如果我似乎在对您说话,请原谅我。我只是不想假设太多。

首先,您没有提到如何安装分区。有几种方法可以做到这一点,但如果您没有使用命令mount或文件中的条目明确安装它/etc/fstab,那么它仍会显示在 Nautilus 中,并在您第一次单击它时自动安装;然后您将在右侧看到一个图标,即线上的三角形符号,表示它已安装(在中/media/your_user_name/volume_label)。这可能对您所描述的情况有所贡献,尽管很难准确解释您所描述的内容。

现在,我将描述我如何做到这一点,它的工作方式符合您的期望。我将所有分区都挂载在 中/mnt/xxxxx。这归 root 所有,这没问题,但是我创建的目录的所有者:组设置为我自己。我创建的目录之一名为/mnt/shared(因为我首先这样做是为了与我以前拥有的 Windows 分区以及我尝试过的其他发行版共享数据文件)。

在这个共享目录中,我挂载了一个 ext4 分区(在我放弃 Windows 安装之前一直是 NTFS),其中包含“文档”、“下载”、“音乐”、“图片”等目录。我将分区标记为“共享”(我将所有分区的标签标记为它们挂载的目录),并且使用标签而不是 UUID 来挂载分区;对我来说,这使其更容易,尽管我可能会用相同的标签标记另一个分区,但这种情况从未发生过,对于我的个人系统,我并不担心。无论如何,在 中/etc/fstab,我有一个条目说:
LABEL=shared /mnt/shared ext4 defaults,user_xattr 0 3

因此,启动后,如果一切顺利,我将/mnt/shared/在该分区中拥有一个包含我所有目录的目录。请确保您是这个新文件夹的所有者,如果不是,请使用sudo chown your_name:your_name

接下来,我右键单击/mnt/shared/DocumentsNautilus 中的目录,然后选择“创建链接”,这将在同一目录中创建一个名为“链接到文档”的文件。接下来,我将链接剪切并粘贴到我的主目录中,常规“文档”文件夹就位于该目录中。假设文档中没有重要的文件或文件夹(如果有,则应将它们暂时移动到临时文件夹中),然后我删除文档文件夹,并立即将“链接到文档”重命名为“文档”。同时执行此操作将保留文件夹的特殊图标。然后您应该有一个新的文档文件夹,它实际上是指向的链接/mnt/shared/Documents

对其他文件夹重复此操作,例如音乐、图片等。

编辑1 关于 HFS+ 的新信息
我从来没有需要与 OSX 双启动,所以我不是细节方面的专家,尽管除了文件系统之外并没有太大的不同。

有一些讨论AskUbuntu 上的其他地方;问题是关于日记的,但答案大多不是。

可能值得一看的是,您是否可以先使用 mount 命令将其挂载,尽管我所做的是保持编辑器打开/etc/fstab,进行更改,然后运行命令mount -a,这不仅可以挂载条目,而且如果有错误,还会给出错误提示,这很有帮助。我认为这是非常很有用。有时,您需要在运行它之前卸载一个或多个分区,但对于大多数情况,如果它给出已安装的错误,则无关紧要。

不过,由于它在 Mint 中有效,而且我假设您使用相同的方法,您是否安装了 hfsprogs? sudo apt-get install hfsprogs
ext3 此外,使用卷标而不是设备名称将使其在编辑时更加清晰,并且在使用中不容易出错,以防驱动器以不同的方式安装。

当然,我的示例 fstab 条目会与您的不同,特别是因为文件系统不同。此外,最后一列有点随意。

关于每个操作系统的单独文件夹...如果您错过了这个细节,我所做的只是挂载数据,而不是整个主目录。因此,例如,在 Linux 上,每个发行版都有自己的主目录,但数据文件夹是共享的。因此,与操作系统相关的内容与其他所有内容都进入同一个分区,而数据文件夹根本没有与操作系统相关的数据。这就是为什么我没有像许多人建议的那样挂载单独的主目录;我可以轻松地将我的数据目录重用于任何版本、任何操作系统,没有任何问题。

顺便说一下,我读到最近的 OSX 版本可以读取/写入 NTFS 分区,因此可以在任何地方使用 NTFS 并进行读取/写入。

还有一件事……你检查过 的所有权和权限了吗/mnt/temp/SnowLeopard/localadmin?如果你不确定,你可以运行ls -alF /mnt/temp/SnowLeopard/localadmin,(或ll /mnt...)并发布结果。你应该将自己视为你链接到的目录的所有者。你应该能够在主目录中执行相同的操作来查看相同的信息ls -L;大写的“L”显示链接目标的信息,而不是链接的信息。

如果您需要更多信息或有疑问,请告诉我。此外,如果它能解决您的问题,请告诉我。:-)

相关内容