Windows 11
微软最新的操作系统

如何在 Mac 上创建和使用符号链接(符号链接)

52551596520_303a331787_o
通过打开终端并使用以下命令创建符号链接:

ln -s /path/to/original /path/to/link

符号链接(也称为符号链接)是指向系统上其他位置的文件或目录的特殊文件。您可以将它们视为高级别名,以下是在 macOS 中使用它们的方法。

什么是符号链接?

在 macOS 中,您可以在“访达”中创建常规别名。别名指向文件或文件夹,它们更像是简单的快捷方式。

make_alias

符号链接是一种更高级的别名类型,适用于系统上的每个应用程序,包括终端中的命令行实用程序。你创建的符号链接在应用中看起来与它指向的原始文件或文件夹相同,即使它只是一个链接。

它们的工作方式很像Linux上的符号链接,因为macOS和Linux都是类UNIX操作系统。PC 用户也可以使用符号链接,但 Windows 上的符号链接的工作方式略有不同。

假设您有一个应用程序,该应用程序需要将其文件存储在 /Library/App 中,您希望将其存储在系统上的其他位置(例如,在 /Volumes/App 中)。您可以将 App 目录移动到 /Volumes/App,然后在 /Library/App 上创建一个指向 /Volumes/App 的符号链接。程序将尝试访问其在 /Library/App 上的文件夹,操作系统会将其重定向到 /Volumes/App。

困惑?让我们看一个真实世界的例子。假设您有许多 Steam 游戏占用了要存储在外部驱动器上的主 Mac 分区上的空间。默认情况下,这些文件恰好存储在“/Users/chris/Library/Application Support/Steam/steamapps”中。首先,将“steamapps”目录移动到名为“Data”的外部驱动器,该驱动器的路径名为“/Volumes/Data”。

要完成此过程,请创建一个符号链接,指向“/Users/tim/Library/Application Support/Steam/”目录中文件的新位置(即“/Volumes/Data/steamapps”)。对于 Steam 和任何其他进程,符号链接看起来就像一个普通文件夹,就好像原始文件夹从未移动过一样。实际上,这些文件存储在其他地方,符号链接作为一个非常令人信服的路标。

这对于macOS操作系统和您使用的应用程序是完全透明的。它允许您为方便起见四处移动文件,如果您内部驱动器上的可用空间有限,则特别方便。您可以移动符号链接,它将指向原始文件。

除了符号链接(有时称为“软链接”)之外,您还可以创建“硬链接”。符号或软链接指向文件系统中的路径。例如,假设您有一个来自 /Users/example 的符号或软链接,指向 /opt/example。如果将文件移动到 /opt/example,则 /Users/example 处的链接将断开。但是,如果创建硬链接,它实际上将指向文件系统上的底层索引节点。因此,如果您从 /Users/example 创建了一个指向 /opt/example 的硬链接,后来又移动了 /opt/example,则无论您将文件移动到何处,/Users/example 处的链接仍将指向该文件。硬链接在较低级别工作。

如果您不确定要使用什么,通常应使用标准符号链接(软链接)。硬链接有一些限制。例如,不能在一个分区或磁盘上创建指向另一个分区或磁盘上某个位置的硬链接,而可以使用标准符号链接执行此操作。

使用 ln 命令创建符号链接

要在 Mac 上创建符号链接,您需要使用“终端”应用。

按命令+空格键,键入“终端”,然后按“Enter”从聚光灯搜索中打开终端。导航到 Finder > 应用程序>实用程序>终端以启动终端。

terminal_spotlight

以以下形式运行命令。您可以指定目录或文件的路径:ln

ln -s /path/to/original /path/to/link

这里告诉 ln 命令创建一个符号链接。如果要创建硬链接,应省略 .大多数情况下,符号链接是更好的选择,因此除非您有特定原因,否则不要创建硬链接。-s -s

下面是一个示例。假设您想在桌面文件夹中创建一个指向“下载”文件夹的符号链接。您将运行以下命令:

ln -s /Users/name/Downloads /Users/name/Desktop

create_symlink_terminal

创建链接后,您会看到“下载”文件夹显示在桌面上。它实际上是您创建的符号链接,但它看起来像真实的东西。此文件夹将显示包含与您的“下载”文件夹相同的所有文件。那是因为它确实如此 – 它们只是指向文件系统上同一底层目录的不同视图。

symlink_example

如果文件路径包含空格或其他特殊字符,则需要用引号将其括起来。因此,如果要在桌面上创建指向用户目录中名为“My Files”的文件夹的链接,则需要类似于以下命令的内容:

ln -s "/Users/name/My Files" "/Users/name/Desktop/My Link"

为了便于在终端中键入文件和目录路径,您可以将文件夹从 Finder 窗口拖放到终端中。终端将自动填写该文件夹的路径。如有必要,它也会将路径括在引号中。

symlink_spaces-1

如果需要在用户帐户无权访问的系统位置创建符号链接,则需要在命令前面加上命令,如下所示:ln sudo

sudo ln -s /path/to/original /path/to/link

请记住,在现代版本的 macOS 上,由于系统完整性保护,如果不更改低级固件选项,您将无法写入某些系统位置。您可以禁用该功能,但我们建议您不要禁用。

sudo_symlink

如何删除符号链接

您可以像删除任何其他类型的文件一样删除符号链接。例如,要删除 Finder 中的符号链接,请右键单击它(或使用 Control+单击),然后从上下文菜单中选择“移至废纸篓”。

delete_symlink

您可以使用该命令从命令行删除链接,该命令与用于删除其他文件的命令相同。运行命令并指定要删除的链接的路径:rm

rm /path/to/link

rm_symlink

如何使用图形工具创建符号链接

Finder 可以创建别名,但它们的工作方式与符号链接不太一样。别名就像 Windows 上的桌面快捷方式一样。它们不被视为真实、透明的符号链接。

要在 Finder 中创建符号链接,您需要第三方实用工具或脚本。我们建议使用开源应用程序 SymbolicLinker 快速向右键单击(Control+单击)查找器上下文菜单添加选项。

下载 .DMG文件并打开它。在Finder中,单击转到>转到文件夹并输入“~/图书馆/服务”,这将带您进入用户名的服务文件夹。将“SymbolicLinker.service”文件拖到此文件夹中。

symbolic_linker_service_finder

双击该服务以运行它,然后单击“打开”以确认您愿意运行它。

open_symbolic_linker

现在,您将在右键单击(控制+单击)服务菜单下找到“建立符号链接”选项。

make_symbolic_link_context

现在将符号链接移动到您想要的任何位置,它将始终指向原始文件夹。

赞(0) 打赏
未经允许不得转载:Win 11系统之家 » 如何在 Mac 上创建和使用符号链接(符号链接)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏