软连接和硬连接区别实例和查看删除操作

创建软连接命令如下:

ln -s 原文件 目标文件

              1.相当于windows的快捷方式
    2.只是一个符号连接,所以软连接文件大小都很小
    3.当运行软连接的时候,会根据连接指向找到真正的文件,然后执行
    4.所有软连接文件的权限是777,而真正的权限是由指向的那个文件决定的
    5.原文件丢失,软连接无法访问,会报找不到的错误
    6.ls -al以后,软连接后面箭头指向的是原文件


相当于windows的快捷方式,这句话非常重要,如果之前没有使用过软连接,这个特征就能很好理解软连接的特征和用途。

windows的快捷方式他会连接到某个磁盘,某个目录,某个可执行文件还有网址等等。

  1. 这个只是个打开它所连接的目录程序文件。一旦它所要连接的目标被删除或不在。这个快捷方式也就失效了。

  2. 这个快捷方式删除,对他所连接的文件不会有任何影响。

实例:

场景:我在liunx中,每次进入tomcat 目录都要打很长的一串路径。为了效率和方便。可以通过软件连接可以提高效率。

实际:tomcat路径 /usr/java/tomcat/apache-tomcat-7.0.92/   

期望:创建一个软连接tomcatt   ,连接到/usr/java/tomcat/apache-tomcat-7.0.92/    。

命令:ln -s /usr/java/tomcat/apache-tomcat-7.0.92/   tomcatt  

我想进入到/usr/java/tomcat/apache-tomcat-7.0.92/ 直接cd tomcatt 就可以。



创建硬连接命令如下:

ln 原文件 目标文件


1.原文件和连接文件的属性完全一样
2.连接文件和原文件的关系类似于:复制+同步更新
3.当原文件丢失,硬连接文件还可以访问
4.不能跨分区,不能针对目录使用
5.原理:
      原文件和硬链接文件的i节点号是相同的(ls -i),1个文件名对应一个i节点,1个i节点可以通过多个文件名访问,所以,他们的属性完全相同,并且修改了其中一个的内容另一个也会跟着修改


软连接和硬连接的区别

  在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。

  1、软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“)

  2、硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

  3、硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

  4、软链接可以跨文件系统,硬链接不可以;

  5、软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);

  6、软链接可以对目录进行连接,硬链接不可以。

  7、两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。

  8、使用 -s 开关可以创建软链接。




硬链接文件有两个限制:
    1)、不允许给目录创建硬链接。
    2)、只有在同一文件系统中的文件之间才能创建链接,而且只有超级用户才有建立硬链接权限。
  对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。其原因是因为对应的文件的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。文件才会被真正删除。
  注:保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index即I节点)。
  软链接没有硬链接以上的两个限制,因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。但是软链接的缺点在于:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。




删除软链接

  rm –rf   ./软链接名称

这里一定要注意 后面的/  ,不然删除时容易产生事故。  rm -rf ./软链接名称/ (这样就会把软链接以及软链接指向下的内容删除)


删除软连接:  rm xxss  确实y即可。

在linux利用ll命令看到结果。其中文件的权限-rw-------后面就是一个1,这个一就是硬链接数

相关标签:


评论: