什么是硬链接和软链接?

什么是硬链接和软链接?

Linux和Unix系统所使用的文件系统的一个特性是为文件创建链接的能力。有两种类型的链接:软链接(也称为符号化或缩写为sym)和硬链接。两者都可以用来连接到另一个位置的文件,但是它们的方式是不同的。

什么是硬链接和软链接?
什么是硬链接和软链接?

硬链接

首先我们来看看硬链接。Linux文件系统允许文件有多个文件名。硬链接是文件名和文件内容之间的关联。一个文件可以像您希望的那样有许多硬链接,但是所有这些硬链接必须放在储存内容的文件系统中。当所有与文件内容的硬链接被删除时,这些数据就会丢失,否则就会删除硬链接(包括文件创建),但这不会丢失数据。

总而言之,当提到硬链接时,人们通常是指在一个原文件以外的文件中添加额外的硬链接。Linux提供了一个名为“ln”的命令,默认情况下该命令用于创建链接,这将创建硬链接。它可以被使用如下:

在《源文件》《目的文件》

在指定文件时,您可以根据需要使用完整路径或相关路径:

ln test.file ~/test2.file

上面的命令将在用户的名为test2文件到当前工作目录的命名测试文件中使用。

软链接

现在让我们来看看软链接。软链接与硬链接略有不同。虽然硬链接将新文件名直接连接到文件的内容,但软链接只是连接到另一个文件名。想象一下,它有点像重新定向,所以当您打开一个软链接时,它会告诉您打开到它链接的文件内容。软链接的一个优点是,您可以将不同文件系统上的文件连接到正在创建的文件系统上。使用软链接的主要缺点是,如果原始文件被删除或移动,那么链接将不再工作。

在Linux系统中经常使用软链接来指定在多个替代选项时应该使用哪个应用程序。例如,大多数Linux系统都附带了Python 2和Python 3。这个文件/usr/bin/Python将是一个依赖于所选系统默认的Python版本的符号链接。

要创建一个软链接,您可以使用与以前类似的ln命令,但是使用-s标志来指定软链接:

ln -s test.file ~/test2.file

举一个实际的例子,在使用基于debian/ubuntu的系统上使用Apache配置时,您可以看到软链接,在这个系统中,虚拟主机的配置是在一个可用的目录中创建的,并且在一个可配置的目录中创建了mods。您可以使用a2enmod和a2ensite工具来启用虚拟主机或mod,您还可以在启用/启用/启用模式的目录中为您创建一个软链接。

您可以使用ls-l标志来查看特定目录中的软链接的目标:

ls – l

使用一个软链接文件,您可以看到类似的输出命令:

lrwxrwxrwx 1 root root 9 Jun 4 2016 python -》 python2.7

需要注意的是,硬链接只能通过超级用户连接到目录,因为在文件系统上创建递归循环可能会引起一些潜在问题。建议您只使用软链接连接到目录,因为大多数应用程序可以透明地处理它们,同时还允许它们理解链接的性质。

上述文章内容是由ixwebhosting中文指南为大家提供的,如果您想转载此内容,请注明转载出处:http://ixwebhosting.com.cn/

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注