首页 > 技术文档 > 文件连接和符号连接的区别
2010
03-06

文件连接和符号连接的区别

  Unix 中使用 i node 来记录真实的物理文件及其位置,文件名只是指向 i node 的一个连接。因此每个文件可以有多个名字,每个名字就称为文件的一个连接,而同一个文件的所有连接所指向的 i node 完全相同。

  但是在删除时只有全部删除这个 i node 的全部连接,才能删除 i node,即删除这个文件本身。

# ln l1 l2

# ls -l l*
-rwxr-xr-x 2 user wheel 53212 Dec 4 12:36 l1
-rwxr-xr-x 2 user wheel 53212 Dec 4 12:36 l2

  上面的例子使用 ln 命令创建了一个连接,然后在 ls 的显示结果中可以看到第二列的数字为2,这表示这个文件有两个连接。这样的连接可以建立在不同的目录中,但所有连接所在的目录必须在同一个文件系统中,才能使用同样的i节点。由于连接是直接指向标识物理文件的 i node,因此这种连接又称为硬连接。

  另一种更灵活的连接方式是符号连接,它没有指向物理文件的 i node ,而是直接指向目录树上的另一个入口,那么当系统访问这个文件时,就沿着它指向的目录树的位置去查找具体文件,这样就能对任何文件系统中的文件和目录建立连接,因此称为软连接。

  符号连接可以跨越文件系统,灵活性很大,能够突破物理文件系统的限制维护目录树的一致性,对于系统管理和维护很有用。但是这种连接方式需要对目录树进行多次查找,增加了文件操作的额外步骤,因此效率较低,因此不应该使用多级连接,及某个符号连接指向的目录还是一个符号连接,甚至发生符号连接的循环。应该尽量少用符号连接,并避免多级符号连接及符号连接的循环。

# ln -s l1 /root/files

# ls -l l*
lrwxrwxrwx 1 user wheel 12 Dec 4 12:36 l1 -> /root/files

最后编辑:
作者:北街
身高八尺,腰围也是八尺!
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

文件连接和符号连接的区别》有 12 条评论

  1. yuri 说:

    看看基础的linux吧~

  2. 北街 说:

    @飞猪博客 这么一说,看来飞猪也是搞IT的~

  3. 飞猪博客 说:

    @易搜购
    捧场留毛之后万一日后用得着,还可翻出来再用。。哦也~

  4. 北街 说:

    @易搜购 真是说到我的心坎里了~thanks
    @笨笨 夜猫子! 😎

  5. 笨笨 说:

    笨笨深夜回访问候,有空多多 ..

  6. 易搜购 说:

    是啊,看了几片文章都跟高级系统相关,也只能捧场了,呵呵。

    不过真在看这些的,是可以相互交流,碰到知音最好。

  7. 北街 说:

    @goldapple 不好依稀~ 😮
    @笨笨 @小辉网 @真好网 :隔行如隔山啊~ 🙁

  8. 真好网 说:

    这个,恩,太专业了啊。

  9. 小辉网 说:

    看不懂……

  10. 笨笨 说:

    汗死我也都看不懂。。北街天天跟着系统打交道的,专业人士。。

  11. goldapple 说:

    哎,完全看不懂

  12. anliu 说:

    跟着你学,嘿嘿

留下一个回复

你的email不会被公开。