linux链接分两种,一种是硬链接(hand link) 一种是软链接 (symbolic link) ln命令是创建链接,默认是创建硬链接 ln -s 是创建软连接

    什么是硬链接 硬链接是通过索引节点来进行连接,在linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会分配一个节点编号,或者称之为索引节点。 多个文件名称指向一个节点编号,一般这种连接是硬链接 一个文件有硬链接的时候,想要真正删除。需要吧所有的连接全部删除,文件的数据库和目录的链接才会被释放。      

什么是软连接 软连接类似 windows的快捷方式,他实际上是一个特殊文件。当创建软连接之后 软连接会有自己的节点编号。且软连接实际上是一个文本,其中包含源文件的位置信息。 当删除源文件的话。。软连接不会消失 但是会报错。

      

                                   总结

硬链接: 1.创建硬链接会增加额外的记录项以引用文件 2.对应同一个文件系统上一个物理文件 3.具有相同 inode节点(节点编号)的多个文件互为硬链接文件 4.硬链接文件是源文件的另一个入口 5.可以通过给文件设置硬链接来防止重要文件被误删 6.创建时链接数递增 7.删除文件时: rm删除硬链接时会出现 源文件上递减链接数 文件存在的话。最少有一个链接数 当链接数为零时,该文件被删除 8.删除硬链接文件或者删除源文件任意之一,文件实体并不会被删除 9.只有删除源文件和所有对应的硬链接文件,文件实体才会被删除 10.硬链接文件是普通文件,可以用rm删除 11.不能跨分区 进行硬链接操作 12.不能对目录进行硬链接 语法: in filiename [lnkname]

     

软连接:

  1. 一个符号链接指向另一个文件 2.ls -l的显示链接名称和引用的文件 3.一个符号链接的内容是他引用文件的名称 4.软链接里面存放的是源文件的路径,指向源文件 5.软连接失效时 一般是白字红底闪烁 6.软连接和源文件是不同的文件,文件类型不同 inode节点编号也不同 7.可以对目录进行 软连接 8.可以跨分区 9.指向的是另一个文件的路径,其大小为指向的路径字符串的长度;不增加或减少目标文件的节点编号 inode引用计数 语法 is -s filename [linkname]

      区别: 原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。 使用限制上,不能对目录创建硬链接,不能对不同文件系统创建硬链接,不能对不存在的文件创建硬链接;可以对目录创建软连接,可以跨文件系统创建软连接,可以对不存在的文件创建软连接。

        ······························································································································

                                                  ln -s 和mv的区别

ln -s 只是在目标地方创建个新的文件 这个文件只是软连接并且有新的节点编号。指向源文件数据不会搬家

而mv不同 mv是cp 和rm的组合 直接吧文件包括数据直接移动。但是节点编号不会改变。并且源地址的数据会被删除