硬链接与软链接

硬连接:

         其本质就是:一个文件,多个名字。注意:目录是没有硬链接的。

ln filename linkname创建硬链接,注意源文件和链接文件位置顺序,硬链接不可以跨分区建。

在创建硬链接时会增加硬连接数,可以通过ls –l查看,如下图所示的,可看到硬链接数。

硬链接与软链接

硬链接创建好,源文件和链接文件实际上是两个独立的文件,对任何一方进行删除都不会影响到另一方,但是修改其中一方,另外一方也会变:例如:

 

一:建立硬链接:(因为硬链接不能跨分区,所以我先拷贝了/etc/passwd/app下,然后创建了硬链接文件pwd。)在图中可以看到在刚拷贝过来passwd后,其硬链接数显示为1,建立硬链接后显示为2,所以创建硬链接实际上实在增加硬连接数,一个文件,不同名字而已。

 硬链接与软链接

二:然后对链接文件pwd进行修改:(这里用的是nanopwd进行的修改,下方有一些辅助按键说明,写完之后呢,按ctrl +X键进行保存退出,再按y键确定,最后回车结束。)

硬链接与软链接

三:在源文件passwd里可以看到修改的数据:(因为内容较长,在这里我就截取了一部分,最主要是看文件的变化),修改链接文件源文件也会随着改变,当然,反过来也一样。这里就省略了。

 硬链接与软链接

四:把源文件删除后,可以看到链接文件依然存在,而且还可以被访问,硬链接数减少为1,所以,硬连接的文件都是独立存在的,删除任一方,另一方都不会改变,只是硬连接数的增加和减少。

硬链接与软链接


对于硬链接数,举个例子:在/app下创建一个目录(目录是不能创建硬链接,但不代表没有硬链接数),/app/a/b,可以ls –l查看一下a的硬链接数为3,如下图所示,有三个inode(索引号)一样的三个文件,分别是,/app下的100663680 a/app/a下的当前目录100663680 . ;/app/a/b下的上一级目录100663680 .. 。这三个文件。(inode号是按照inode表自动生成的,)

硬链接与软链接

 

 

 

软链接呢,也可以叫做快捷方式,因为链接文件只是存了源文件的一个路径,

ln –s filename linkname创建软链接,软链接可以跨分区建。

而且在创建软链接后,改变链接文件不会改变源文件,但若是改变了源文件,那么链接文件也会发生变化,因为在执行链接文件的时候,其实是顺着保存的源文件的路径去找的源文件然后执行的源文件。例如:

 

一:新建软链接,会看到和硬链接有所不同,硬链接都是文件,软链接是一个快捷方式,链接文件有颜色,但是硬连接数没有发生改变。

硬链接与软链接

二:对软链接文件pwd进行编辑修改内容,

硬链接与软链接

三: 可以看到,和硬链接一样,源文件也被改变:

硬链接与软链接

四:删除链接文件对源文件没有影响,还是能查看内容,但是…..

硬链接与软链接

五: 删除源文件后,链接文件无内容,证明了软链接存的只是路径,

硬链接与软链接

 

在创建软链接时,出现l一些问题:以下是我在创建过程中出现的问题:

        

/app下有两个目录dir1dir2,在dir1下有一个目录文件issuedir2下有一个目录sub,想在/app/dir2/sub下产生issue的链接:如下图所示:

 

一:其中(-p)是你多级创建目录,tree可以直观的显示出结构,但此时可以看到,创建的链接文件是红色的,也就是错误的做法,因为sub是个空目录,多在sub后加了个“/”,指到了它的下一级,

硬链接与软链接

 

二:这种情况下才是正确的:相当于在sub下新建了一个test的目录用于存放链接/app/dir1/issue.

硬链接与软链接

 

 

三:还有这种,相当于在在sub下建了一个和/app/dir1/issue一样的名字作为它的链接。

硬链接与软链接

 

四:还有一种方法,因为要做dir2/sub下建立软链接,所以就先进到sub下,用 “.” 表示当前路径,让源文件使用绝对路径有一定的弊端:把issuedir1下挪走,软链接就会发生变化:

硬链接与软链接

执行了mv后,issue的路径发生了变化,从之前的/app/dir1/issue,调到了/app/dir2下,

因此软链接失效了,

硬链接与软链接

五:相对于app建的;把dir2/sub/issue挪到当前目录也就是/app下,就可以用了。

硬链接与软链接

 

综上所述呢,在建立软链接时,要看一下在哪一级创建的,所在目录不同,创建时的路径也不同,

原创文章,作者:M.Sun,如若转载,请注明出处:http://www.178linux.com/81916

(0)
M.SunM.Sun
上一篇 2017-07-20 18:27
下一篇 2017-07-20 20:40

相关推荐

  • Linux终端类型

    Linux终端类型 Linux系统中的终端基本都在/dev目录下,可分为文本命令行模式和图形界面模式。命令行模式是一种字符设备,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机,是由Teletype公司生产的。 1、 物理终端 在Unix系统中,计算机显示器通常被称为控制台终端。…

    Linux干货 2016-10-14
  • 文件查找与压缩-2

    1、tar [OPTION]… (1) 创建归档(打包而非压缩) 其中-c是创建备份,-f是指定创建备份成的文件即是/PATH/TO/SOMEFILE.tar #tar -c -f /PATH/TO/SOMEFILE.tar  FILE… #tar cf / PATH/TO/SOMEFILE.tar FILE… …

    Linux干货 2016-08-18
  • lvs-dr模型

    dr 模型 1、 directory ,node1 ,node2 三台主机都是一块网块, 并且网卡都为桥接,且node1,nod2,不需要指定网关 在director主机中执行   #ip addr add 192.168.1.20/32 dev ens33 # ipvsadm -A -t 192.168.1.20:80 -s rr # ipvsa…

    Linux干货 2017-08-26
  • vim的简介与使用

          vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。      vi编辑器支持编辑模式和命令模式,编辑模式下可…

    Linux干货 2016-08-15
  • 软链接,硬链接区别

    软硬链接涉及文件系统inode, 区分于inode号,硬链接inode号与链接文件相同,且创建链接不占空间.而软链接占名称字节个空间,且inode号与链接文件不同; 两者查找inode号命令都可查找inode号,命令为ls -i,如需查找本目录要加d; 在创建链接环境上,硬链接只能在同分区创建一个,不能跨分区创建;而软链接可以跨分区创建多个链接文件且可以多个…

    Linux干货 2016-10-20
  • DHCP使用帮助

    bootp 想要通过tcp/ip模型进行网络通信需要有一个ip地址,IP地址是属于操作系统的,所以没有操作系统就没有ip 为了解决这种问题,有一种网卡可以不需要操作系统就能获取到ip bootp:只有第一次是动态获得,以后ip地址就是和mac地址绑定的,不能分配给其他主机 DHCP:DHCP是bootp的改进版,主要引入了租约的定义 DHCP也可以根据mac…

    Linux干货 2016-11-11