在Linux中使用硬链接来链接文件

有两种类型的链接可以在Linux中创建:

符号链接非常像Windows中的桌面快捷方式。 符号链接仅指向文件的位置。

删除符号链接对链接指向的物理文件没有影响。

符号链接可以指向当前文件系统上的任何文件或者其他文件系统。 这使得它比硬链接更加灵活。

硬链接实际上是它链接到的文件,但名称不同。 考虑它的最简单方法如下:

想象一下你出生时的名字是罗伯特。 其他人可能会认识你为罗比,鲍勃,鲍比或罗布。 每个人都会谈论同一个人。

每个链接将1添加到链接的计数器,这意味着要删除物理文件,您必须删除每个链接。

为什么使用硬链接?

硬链接提供了一种组织文件的有效方法。 描述这个最简单的方法是在芝麻街的一个老集。

伯特告诉厄尼收拾他所有的东西,厄尼开始了他的任务。 首先,他决定收拾所有红色的东西。 “消防车是红色的”。 所以厄尼把消防车带走了。

接下来,厄尼决定收起所有带轮子的玩具。 消防车有轮子。 于是厄尼收拾了消防车。

毋庸置疑,伯特回家后发现与之前一模一样的混乱,但厄尼已经把消防车收拾了六次。

想象一下消防车只是消防车的照片。 您可以在机器上拥有不同的文件夹,如下所示:

现在您可以创建照片副本并将其放置在每个文件夹中。 这意味着您有三份相同的文件占用了三倍的空间。

通过复制照片来对照片进行分类可能不占用太多空间,但如果您对视频尝试相同的操作,则会显着减少磁盘空间。

硬链接根本不占用空间。 因此,您可以在不减少磁盘空间的情况下以各种不同的类别(即年份,流派,演员,导演)存储相同的视频。

如何创建硬链接

您可以使用以下语法创建硬链接:

ln path / to / file / path / to / hard / link

例如,在上面的图片中,我们在路径/ home / gary / Music / Alice Cooper / Trash中有一个名为Trash的Alice Cooper音乐文件夹。 在该文件夹中,有10首歌曲是经典毒药之一。

Now Poison是一首摇滚曲目,因此我们在音乐文件夹下创建了一个名为Rock的文件夹,并通过输入以下文件创建了一个与Poison的硬链接:

ln“01 - Poison.mp3”“〜/ Music / rock / Poison.mp3”

这是组织音乐的好方法。

如何区分硬链接和符号链接的区别

你可以通过使用ls命令来判断文件是否有硬链接:

ls -lt

没有链接的标准文件如下所示

-rw-r - r-- 1 gary gary 1000 Dec 18 21:52 poison.mp3

专栏如下:

如果这是一个硬链接,输出结果如下所示:

-rw-r - r-- 2 gary gary 1000 Dec 18 21:52 poison.mp3

请注意,链接数列显示2.每次创建硬链接时,该数字都会增加。

符号链接如下所示:

-rw-r - r-- 1 gary gary 1000 Dec 18 21:52 poison.mp3 - > poison.mp3

您可以清楚地看到一个文件指向另一个文件。

如何查找文件的所有硬链接

Linux系统中的所有文件都包含一个唯一标识该文件的inode编号。 文件及其硬链接将包含相同的inode。

要查看文件的inode编号,请键入以下命令:

ls -i

单个文件的输出如下所示:

1234567文件名

找到一个文件的硬链接,您只需要使用相同的inode(即1234567)对文件进行文件搜索。

你可以用下面的命令来做到这一点:

找到〜/ -xdev -inum 1234567