什么是符号链接(Symlink)?如何在Linux中创建一个

作为计算机用户,如果必须定义快捷方式,您可能会说它是指向文件,文件夹或应用程序的指针,对吗?没错。

但是这个简短的定义根本无法说明整个故事。这意味着所有快捷方式都不相同。您几乎有几种快捷方式类型。我们将重点关注下面的符号链接。它也称为符号链接或软链接,我们将互换使用这些术语。

让我们看看什么是符号链接,如何在Linux以及macOS和Windows上创建符号链接,为什么需要

什么是符号链接?

确实,符号链接是快捷方式文件。但这与标准快捷方式不同,例如,程序安装程序已放置在Windows桌面上,以使程序更易于运行。

当然,单击任一类型的快捷方式都可以打开链接的对象,但是

尽管标准快捷方式指向某个对象,但是符号链接使它看起来好像链接的对象实际上在其中一样。

您的计算机及其上的应用程序将读取符号链接作为目标对象本身。

在macOS上,您会以“文件存在"消息的形式获得此证明,当您尝试创建文件时会出现该消息。符号链接位于与原始对象相同的位置。即使您在其他位置创建符号链接后尝试将其移动到同一位置,它也会被重命名为副本。

假设您的硬盘上有一个要同步的文件夹使用Dropbox而不将文件夹本身移动到Dropbox。

在这种情况下,在Dropbox中创建文件夹的快捷方式是没有意义的。该快捷方式将在创建它的设备上运行。 Dropbox也将同步快捷方式。但是,当您从另一台计算机访问同步的快捷方式文件时,该无效的文件无效,即无处可通。

现在,如果该快捷方式是符号链接,则不会遇到此问题。这是因为Dropbox会将符号链接读取为实际文件夹,并因此同步该文件夹中的数据。然后,即使原始文件夹不是Dropbox的一部分,也可以在所有启用了Dropbox同步的设备上访问该文件夹及其内容。

请记住,这是常规快捷方式还是符号链接,将其删除不会以任何方式影响原始对象。

为什么需要符号链接?

通常,在您创建符号链接而不是快捷方式时是一个好主意想要

  • 从多个位置访问文件,而无需创建副本,也无需使用大量磁盘空间。 (符号链接只有几个字节。)
  • 维护文件的不同版本,同时确保指向该文件的所有指针始终指向最新或最新版本。 (这是有效的,因为即使将目标文件替换为同名的其他文件,符号链接仍保持活动状态。)
  • 将数据从C:\驱动器移至辅助硬盘驱动器,而不会中断需要将这些数据保存在C:\驱动器上的系统或应用功能。
  • 您可能会遇到许多其他用于符号链接的用例。

    如何创建符号链接< /

    您可以使用终端或命令行创建软链接。如果您对终端不满意,我们将在稍后提供点击工具。

    在Linux上,您可以使用以下终端命令为文件或文件夹创建符号链接:

    ln -s [/path/to/file] [/path/to/symlink]

    由于macOS是Linux之类的基于UNIX的操作系统,因此同样的命令也适用于macOS。

    请参见上面的屏幕截图中的示例命令。

    某些Linux桌面环境中的本机文件管理器允许您通过右键单击菜单创建软链接,因此您可能要检查文件浏览器应用程序是否具有该选项。

    流行的Nautilus文件管理器与各种Linux发行版捆绑在一起的 Make Link 菜单选项现已消失。但是您仍然可以通过按住 Ctrl Shift 键并将目标文件拖到想要显示符号链接的位置来在Nautilus中创建符号链接。不用担心,原始文件会保留。

    您需要以管理员身份打开命令提示符窗口,然后键入以下命令来创建符号链接:

    mklink [/path/to/symlink] [/path/to/file]

    对于指向目录的符号链接,您必须使用 / d 标志稍微调整一下命令:

    mklink /d [/path/to/symlink] [/path/to/file]

    如果您不想使用命令行,您可以使用称为“链接外壳扩展"的图形工具来创建符号链接。这是用于文件管理的最佳Windows File Explorer扩展之一。

    注意:系统不会阻止您在符号链接中创建符号链接,但是最好是避免这样做。否则,您将创建一个无限循环,可能导致系统范围的服务(如防病毒扫描程序)出现问题。

    在MacOS上的符号链接与别名

    如果您曾经创建过别名在macOS上,您会注意到它们的行为很像符号链接。两种类型的快捷方式均引用链接文件或文件夹的路径名。

    区别在于别名也使用称为 inode (索引节点)的标识符标记了链接的对象。该标识符是对象唯一的,并且在文件系统中跟随该标识符。

    这就是为什么即使您将其目标移动到其他位置,别名也可以正常工作的原因。尝试使用符号链接进行操作,您会遇到错误。 (除非您要处理受系统保护的文件,否则您可以移动别名和符号链接本身没有任何问题。)

    当然,如果您删除原始文件或重命名层次结构中较高位置的任何文件夹。

    无法分辨出别名和符号链接之间的区别,因为您已从别名的文件名中删除了 alias 标记?

    打开每个快捷方式的文件检查器或获取信息面板,然后在常规部分下查看文件大小。如果显示(磁盘上的零字节),则说明您正在处理符号链接。

    符号链接(在当前文件夹中)也会在您使用此终端命令时显示出来:

    ls -la

    该命令也适用于Linux,并且您会看到符号链接指向原始对象的位置。

    符号链接比快捷方式要好

    符号链接最初看起来似乎很混乱,但是如果您花一些时间来理解它们,您将意识到它们毕竟非常易于使用!

    您甚至可以使用以下命令在Android上创建符号链接Termux,一个使您可以使用Linux命令行的应用程序。您是否知道可以通过符号链接更轻松地共享Google云端硬盘文件?

    标签: 符号链接 终端