2-19 Linux中的连接文件 --- 硬链接

2021-04-14  本文已影响0人  捌千里路雲和月

了解硬链接之前先梳理一些概念

Inode 编号:

Inode 编号是文件的索引节点的编号,每个文件都会有一个Inode编号。系统需要找到文件是根据 Inode 编号进行索引。

文件名:

无论是一个目录还是文件,都有一个文件名。它是给操作者看的。系统不看文件名,系统是根据 Inode 编号找到这个文件名再进行操作。

硬链接:多个文件对应同一个 Inode 编号,对多个文件中的某一个文件修改内容,同一 Inode 编号的文件都会随之发生内容上的改变。它的工作模式是 多用户协同一致工作。

查看Inode 编号:

ls -i:-i 选项是列出文件的 Inode 编号。可以整合其他选项一同查看。

如 ll -i 列出详细内容和Inode 编号

    创建硬链接有两种方法:

    link oldfile newfile   和   In oldfile newfile

    例:对 test.txt 文件创建 5 个硬链接

    ll -i 查看详情。发现虽然 6 个文件名都不一样,但 Inode 编号都一样。对于系统来说,虽然       文件名不一样,但是 Inode 编号是一样的。它们就是同一个文件。所以,即使不同的文件名       进行操作,最后存储的文件都只有一个,就是这个 Inode 编号的文件。

    Inode 编号一样的文件,随便对其中一个文件进行内容的增删改查。其他的文件内容上也随        之发生变化。

    例:vim user1 这个文件,添加内容 user1 保存退出。然后,查看其他 Inode 编号一样的文        件看看有什么变化。

    cat 了其他几个文件,反馈出来的信息都是 vim user1 的内容。证实了 Inode 编号一样的文        件。只要有一个文件内容变化了,都会反映到同一 Inode 编号的文件当中。 

如同,再对 user3 文件增加一个 user3 这样的内容,其他同一 Inode 编号的文件也会体现出同样的内容。


tips:硬链接特点:

    1、不能对目录创建硬链接。

    例:1、mkdir test 创建一个 test 的目录。

           2、ll -i 确认 test 目录已经生成。

           3、link test t1:对 test 目录创建一个名为 t1 的硬链接。

           4、报错:t1 不能生成硬链接到 test 。

    2、只能对已经存在的文件进行硬链接创建,也就是不能像软链接那样创建一个空的指向。

   例:1、link user10 u1:user10 文件不存在,却对 user10 创建一个 u1 的硬链接。

          2、报错:没有找到文件

    3、删除一个硬链接文件,不影响其他相同 Inode 编号的文件 rm -rf user1 user2 user3 user4           user5:删除同一 Inode 编号的 user1-5 的文件。cat test.txt 文件,同样可以看到内容。            证明了, 删除同一 Inode编号的硬链接文件,不会对其他文件有影响。

上一篇下一篇

猜你喜欢

热点阅读