当前位置:首页 » linux系统 » 正文

【Linux】Linux中链接文件

442 人参与  2017年04月10日 21:47  分类 : linux系统  点这评论

Linux中,链接有两种:符号链接(symbolic link)和硬链接(hard link)。在具体了解这两种链接之前,我们先要简要了解两个概念:inode和目录条目:

在Linux中,一个文件本身的数据总是放在在一个块(block)或者块的集合中。文件的信息(包括文件类型、读写权限、文件所有者、文件组、文件大小、文件链接数目,文件时间戳等)放在在一个 inode 中,一个文件只对应一个inode,而且这个inode在本文件系统内是惟一的。

在Linux中,一个目录文件总是包含一个目录条目清单,所有此目录中的文件或者子目录都体现为这个目录条目清单中的一个目录条目,目录条目包含这个个文件名或目录名,以及指向该文件或目录的 inode 的指针。

一个硬链接仅仅是文件或目录的一个附加目录条目,允许同一文件或目录有多个名字。

而一个符号链接是指向包含另一目录条目的文件的一个目录条目。符号链接也称为 symlinks。通俗来说,文件的硬链接就可以理解为文件的一个别名,而符号链接则可以视为文件的一个快捷方式。  


创建链接方法  

用法:ln [选项]... 目标链接名        (第一种格式)

 或:ln [选项]... 目标                    (第二种格式)

 或:ln [选项]... 目标... 目录        (第三种格式)

  

在第一种格式中,创建指定名称且指向指定目标链接。

在第二种格式中,在当前目录创建指向目标位置的链接。

在第三种格式中,在指定目录中创建指向指定目标的链接。

 

默认创建硬链接,当使用-s 时创建符号链接。当创建硬链接时每个指定的目标都必须存在。符号链接可以指向任意的位置(包括不存在的位置)。

 

-d   创建指向目录的硬链接(只适用于超级用户)

-f,   强行覆盖任何已存在的目标文件

-i    覆盖文件前进行确认

-s   创建符号链接

注意:普通用户没有创建目录硬链接的权限,只有根用户可以通过“ln –f”命令强制为目录创建硬链接 ¨       

虽然根用户是可以为目录创建硬链接的。但是我们不推荐这样做,因为创建目录硬链接有可能会在文件系统中引入目录遍历的死循环而造成文件系统的混乱,具体原因可参见下面的链接http://c2.com/cgi/wiki?HardLink" _src="http://c2.com/cgi/wiki?HardLink">http://c2.com/cgi/wiki?HardLink  。 ¨       

例外情况是每个目录中目录本身及其父目录(. 和 ..)这两个硬链接。


删除一个符号链接不会影响到这个符号链接指向的目标文件或目录;        

反过来,删除、移动或者重命名某个符号链接所指向的目标文件或目录不会导致这个符号链接被删除,只会让这个符号链接“断裂”。


 如果一个文件有多个硬链接,仅在其最后一个硬链接被删除且硬链接数为 0 时文件才会被真正从文件系统中删除;

由于inode 仅在特定文件系统内是惟一的,因此硬链接不能够跨越文件系统;

符号链接没有上面的限制,具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。


来源:太阳笑了博客:感恩有你一路相伴(QQ号:1368396530),转载请保留出处和链接!

本文链接:http://www.taiyangxiao.com/post/394.html

本文标签:Linux  

<< 上一篇 下一篇 >>

  • 评论(4)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

    网站分类

    最新留言

    我是公告

      感谢大家访问我的博客,如果大家喜欢我的内容,请友情支持一下,点击下面广告吧!

    皖ICP备16018029号|本站已安全运行了天| 信用认证 |

    博客大全 卢松松博客 中国博客联盟 boke112导航 米鱼博客

    快捷导航返回顶部

    分享:

    支付宝

    微信