如何在Linux中使用Ln命令创建符号链接

符号链接通常称为: 软链接 要么 符号链接是一种特殊类型的文件,它引用另一个文件或目录。

在本指南中,您将学习如何使用ln命令在Linux上创建符号链接以及在文件之间创建链接。

链接类型

在Linux上,有两种类型的链接。这些是软链接和硬链接。

硬链接: 硬链接是原始文件的副本。您可以访问目标文件中的数据。用户无法创建仅目录到文件的硬链接。此外,硬链接的文件具有公共的inode编号。如果原始文件被删除或删除,则硬链接将继续起作用,并将包括已删除文件的内容。同样重要的是要注意,硬链接不会跨越不同的文件系统。

软链接: 与硬链接不同,软链接只是指向文件名的指针,不包括其他文件或引用的目标文件的内容。如果目标文件被删除或删除,则软链接将不再存在。关于软链接的好处是,它们可以用于链接到文件或目录,并且可以跨越不同的文件系统。

如何使用ln命令

ln命令用于在文件之间创建链接。默认情况下,此命令创建硬链接。要创建软链接,只需 -s 选项 ( -符号)。

句法:

ln [OPTION] TARGET LINK_NAME

为避免混淆,在创建符号链接时,请为源文件和目标文件使用绝对(相对)路径。

如何创建到文件的符号链接

要创建指向文件的符号链接,请运行以下命令。

$ ln -s { OPTIONS } file symlink

如果同时定义了文件和符号链接,则使用ln命令 文件 这是第二个参数定义的文件的第一个参数 符号链接..

例如,要创建到文件的符号链接,请使用以下语法。

$ ln -s  original_file symlink

注意:成功时ln不返回任何输出。

用命令 原文件 使用创建符号链接的现有文件 符号链接 具有符号链接。

让我们看一个真实的例子:

$ ln -s  file1.txt   sample_link.txt

上面的命令将创建一个到当前目录中现有文件“ file1.txt”的符号链接“ sample_link.txt”。

要验证链接的创建,请使用ls命令,如下所示:

$ ls -l sample_link.txt

您的输出应类似于以下内容:

lrwxrwxrwx 1 winnie  winnie 9 Jul 12 23:43 sample_link.txt -> file1.txt

在权威上 l 该标志表示这是一个符号链接,而字符 - > 指示符号链接指向文件 file1.txt..

由于路径问题,符号链接可能不起作用。我们建议使用完整路径。

# absolute (full path)
ln -s /path/to/originals/originalfile1.txt backup/copy.txt

# relative
cd backup
ln -s ../originals/originalfile1.txt copy.txt

如何创建指向目录的符号链接

创建指向目录的符号链接与创建指向文件的符号链接一样容易。语法几乎相同。第一个参数采用目录名称,符号链接作为第二个参数给出。

以下语法是如何执行此操作的示例。

$ ln -s  /path/to/directory  ~/directory

例如,从目录创建符号链接 /下载音乐/〜/我的音乐 运行以下命令。

$ ln -s  /Downloads/music  ~/my_music

如何覆盖符号链接

只需调用即可覆盖符号链接 ln命令 没有任何其他参数,我总是会收到以下错误:

例如,如果再次运行以下命令:

$ ln -s  file1.txt   sample_link.txt

我收到以下错误:

ln: failed to create symbolic link 'sample_link.txt': File exists

此问题的解决方法是引入另一种选择 -F 要么 -电源 覆盖符号链接的目标路径,如下所示。

$ ln -sf  file1.txt   sample_link.txt

这次,覆盖软链接不会导致错误。

如何删除符号链接

要在Linux上删除符号链接或符号链接,请使用rm命令或 断开链接 命令。而且非常容易。为 断开链接 要删除命令符号链接,请使用以下语法。

$ unlink symlink_to_be_removed

使用rm命令删除软链接与删除或删除常规文件相同。

$ rm symlink_to_be_removed

符号链接重要吗?

如果您要执行以下任何操作,建议创建到文件的符号链接:

  1. 您可以从多个位置访问文件而无需创建重复副本,这必然会占用大量磁盘空间。
  2. 您要保留文件的原始版本,并确保链接指向文件的最新版本。这是因为即使用另一个具有相同文件名的文件替换了文件,符号链接仍然保持活动状态。

Linux程序使用符号链接作为别名,因此用户不需要知道所使用代码的版本。

# which python
/usr/bin/python
# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 Feb 21 13:38 /usr/bin/python -> python2

结论

符号链接和标准快捷方式相似,但是两者之间存在一些差异。

标准快捷方式(如Windows中的快捷方式)是指向特定目录,文件或应用程序的常规文件。该快捷方式通常显示为图标,您可以在任何地方创建该快捷方式,然后单击以打开原始文件,目录或应用程序。

该符号链接实际上从功能上表示原始文件。它是文件等对象的直接替代。 Linux系统读取Linux符号链接,就好像它们是目标对象一样。普通的快捷方式仅引用文件或目录,而没有其他作用。

这就是如何在Linux中创建符号链接的全部内容。有关更多信息,请参见ln man。希望您喜欢阅读,并留下评论或建议。

Sidebar