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

文件快捷方式很有用,但符号链接(symlinks)可以更改您在Linux、macOS和Windows上使用文件和文件夹的方式。...

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

multitask-linux-terminal

但这个简短的定义并不能说明全部。这意味着所有的捷径都是相同的,而不是相同的。您几乎有几种快捷方式类型。我们将关注下面的符号链接。它也被称为符号链接或软链接,我们将互换使用这些术语。

让我们看看什么是符号链接,如何在Linux以及macOS和Windows上创建符号链接,为什么需要这种特殊类型的快捷方式,等等。

什么是符号链接(a symlink)?

符号链接确实是一个快捷方式文件。但是它不同于标准的快捷方式,比如说,程序安装程序放在你的Windows桌面上使程序更容易运行。

当然,单击任一类型的快捷方式都会打开链接的对象,但是在这两种情况下,引擎盖下的操作是不同的,我们将在下面看到。

当标准快捷方式指向某个对象时,符号链接使其看起来好像链接的对象确实在那里。您的计算机及其应用程序将符号链接作为目标对象本身读取。

在macOS上,当您尝试在与原始对象相同的位置创建符号链接时,会出现一条“file exists”消息来证明这一点。即使在其他地方创建符号链接后尝试将其移动到同一位置,也会将其重命名为副本。

File exists message while creating a symlink in Terminal on macOS

符号链接与标准快捷方式

假设您的硬盘上有一个特定的文件夹,您想与Dropbox同步,而不将文件夹本身移动到Dropbox。

在这种情况下,在Dropbox中创建文件夹的快捷方式是毫无意义的。快捷方式将在您创建它的设备上工作。Dropbox也会同步快捷方式。但是,当您从另一台计算机访问同步的快捷方式文件时,它是无效的,即,它不会指向任何地方。

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

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

为什么需要符号链接?

一般来说,如果您想:

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

您可能会遇到许多其他符号链接的用例。

如何创建符号链接

可以使用终端或命令行创建软链接。如果你不喜欢摆弄终端的话,我们稍后会直截了当地使用工具。

在linux和macos上

Terminal command for creating a symbolic link on macOS

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

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

同样的命令也适用于macOS,因为macOS是基于UNIX的操作系统,比如Linux。

有关示例命令,请参见上面的屏幕截图。

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

流行的Nautilus文件管理器与各种Linux发行版捆绑在一起,它有一个Make Link菜单选项,现在已经消失了。但是您仍然可以在Nautilus中创建符号链接,方法是按住Ctrl和Shift键并将目标文件拖到希望符号链接显示的位置。别担心,原始文件会放在原处的。

在windows上

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

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

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

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

如果不想使用命令行,可以使用名为linkshell Extension的图形工具来创建符号链接。它是用于文件管理的最佳Windows文件资源管理器扩展之一。

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

macos上的符号链接与别名

Symlink and alias for a file in Finder on macOS

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

不同之处在于,别名还使用名为inode(索引节点)的标识符标记链接对象。此标识符对于对象是唯一的,并在文件系统中跟随它。

这就是为什么即使将别名的目标移动到其他位置,别名也能正常工作的原因。用符号链接试试,你会遇到一个错误。(除非处理受系统保护的文件,否则可以毫无问题地移动别名和符号链接本身。)

当然,如果删除原始文件或重命名层次结构中较高的任何文件夹,这两种类型的快捷方式都将被证明是无用的。

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

打开每个快捷方式的“文件检查器”或“获取信息”面板,查看“常规”部分下的文件大小。如果它说(磁盘上的字节数为零),那么您正在处理一个符号链接。

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

ls -la

这个命令在Linux上也可以运行,您将看到指向原始对象位置的符号链接。

符号链接比快捷方式好

符号链接一开始可能会让人困惑,但如果你花时间去理解它们,你会发现它们毕竟很容易使用!

你甚至可以用Termux在Android上创建符号链接,Termux是一个允许你使用Linux命令行的应用程序。你知道你可以用符号链接更容易地共享Google驱动器文件吗?

  • 发表于 2021-03-19 23:12
  • 阅读 ( 309 )
  • 分类:IT

你可能感兴趣的文章

学习python?下面是如何复制文件

... shutil.copy([source directory path], [destination directory path], follow_symlinks=True) ...

  • 发布于 2021-03-11 10:45
  • 阅读 ( 337 )

如何在linux上设置emoji键盘

...的模块。在这种情况下,您需要UniEmoji来允许它键入表情符号。您需要从源代码处安装它才能正常工作。使用这些命令很容易做到: ...

  • 发布于 2021-03-12 00:22
  • 阅读 ( 302 )

如何在ubuntu中使用简单命令启动默认应用程序

... 编辑器命令实际上是一个符号链接(symlink)。你可能会问,有没有nano的链接?不!命令/usr/bin/editor是指向/etc/alternatives/editor的链接。/etc/alternatives目录是将系统中的所有备选方案作为符号链接进行管理的地...

  • 发布于 2021-03-15 02:20
  • 阅读 ( 203 )

如何在googlekeep中创建嵌套列表

...,googlekeep不提供任何特殊的标记或格式特性,比如项目符号列表。 ...

  • 发布于 2021-03-24 20:38
  • 阅读 ( 190 )

关于linux最常见的问题。。。回答

... ln -s /path/to/file /path/to/symlink ...

  • 发布于 2021-03-25 12:19
  • 阅读 ( 193 )

如何在linux中添加用户

... 什么是useradd命令(the useradd command)? ...

  • 发布于 2021-03-26 23:29
  • 阅读 ( 331 )

如何在linux上查找和删除断开的符号链接

...何必要的事情来修复符号链接。 请注意,如果尝试运行symlink,则得到的错误引用的是symlink名称,而不是symlink指向的程序的名称。 我们键入以下内容: ./hello 查找断开的符号链接 大多数find的现代版本都有xtype(扩展类型)选...

  • 发布于 2021-04-01 09:09
  • 阅读 ( 208 )

如何在googledocs中创建多级列表

...以轻松地在文档中创建和自定义多级列表。你可以用项目符号、数字、甚至字母顺序来格式化你的列表。我们来看看这个过程。 如何创建多级列表 打开浏览器,进入googledocs主页,打开一个新文档。 在googledocs中创建多级列表...

  • 发布于 2021-04-02 17:16
  • 阅读 ( 199 )

如何更改windows 10 update下载文件夹位置

...文件夹重命名为其他文件夹。这是因为您将创建一个新的symlink文件夹,而Windows不允许您有两个同名的文件夹,即使其中一个文件夹只指向您在第一步中创建的新文件夹。 在文件资源管理器中,浏览到C:\Windows。右键单击“Software...

  • 发布于 2021-04-04 06:29
  • 阅读 ( 331 )

如何在mac上创建和使用符号链接(又名symlinks)

...点不同。 相关:如何在Linux上创建和使用符号链接(又称Symlinks) 什么是符号链接(symbolic links)? 在macOS中,您可以在Finder中创建常规别名。别名指向文件或文件夹,但它们更像是简单的快捷方式。 符号链接是一种更高级的别...

  • 发布于 2021-04-08 04:06
  • 阅读 ( 281 )
肖晨玉
肖晨玉

0 篇文章

相关推荐