符号链接、软链接与硬链接(转载+整理)

接:hard link,软连接:symbolic link

首先是名字上的区,硬接:hard link,软连接:symbolic link

再分叙述:

首先是hard link,大家都知道cp的用法,即cpoldfilenewfile这样一来就比,假oldfile600M,拷出来的newfile(也即oldfile的副本)也同要占距600M的空这对于我的LINUX说简直就是噩梦,居然两个文件就站了1G多!有没有一种方法能省空又能相互接呢?答案是有的,大家回想一下自个儿在WINDOWS下有没有似的解决方法?了,就是建立快捷方式嘛!hard link就是相当于建立一个文件的快捷方式,是迷茫?

呵呵,个例子吧:

romeo/tmp的目下有个文件love,此时给love文件:"rw-r-r",恰好系内另一名用juliet也要用个文件,那么她就只需建立一个到/tmp/lovelink即可:

[juliet@redhat9 juliet]$ ln /tmp/love JulietLink

这样就在用juliet的目(/home/juliet)建立了一个hard link,其文件名JulietLink,这时执行:

$ ls -l /home/juliet

发现如下信息:

-rw-r--r-- 2 romeoromeo 5096 .......JulietLink

可以得知文件的接数是:2,表明文件除了本身外有另一个副本.如果再切一个用户对这个文件接,则链接数继续增加.同时发现建立接后文件的属主和属仍是:romeo

接下来接文件和原文件的索引号:

$ ls -s JulietLink
24340 JulietLink

$ ls -s /tmp/love
24340 /tmo/love

可知,两个文件的索引号是一致的,如果用复制而不是接的,就会生两个不相干文件,各自有不同的索引:

$ cp /tmp/love JulietLink

$ ls -l JulietLink
37027 JulietLink

正如你发现:37027!=243430

最后,我来看一下symbolic link:

其用命令ln -s建:

$ln -s /tmp/love SysLink

再:$ls -l /home/juliet

lrwxrwxrwx 1 julietjuliet......
SysLink->love

由首"l"发现这是一个接文件,"1"得知loveSysLink接数没有改(想想什么 ) "rwxrwxrwx"知道文件的真正限要以所指文件准,软链接本身不做任何限制。软链接本身不保存文件的数据,其真正内容是指向原来的文件,如果将文件love除或改名,SysLink会指向一个不存在的文件,其内容成空白;但是它会占用一个索引点,并有自己的索引号,不信你试试

$ls -i SysLink

示的索引号一定不同于love的索引

总结
hard link
建的文件和原文件的索引号相同,相当于一个原文件有多个名。
symboliclink建的接和原文件的索引号不同,相当于指向原文件的位置。
PS
hard link symbolic link建后均可以用rm命令除。

简单
接是文件一个副本,同建立两者之接关系。修改其中一个,与其接的文件同被修改。如果除其中任意一个其余的文件将不受影响。
软连接也叫符号接,他只是源文件在新的位置建立一个快捷(借用一下wondows常用,所以,当源文件,符号接的文件将成无源之水->仅仅剩下个文件名了,当然接,也不会影响到源文件,但对连接文件的使用、引用都是直接用源文件的。

软连接与windows下的快捷方式似。
至于硬接,个例子吧,你把dir1/file1接到dir2/file2,就是在dir2下建立一个dir1/file1像文件file2,它与file1是占用一大的空的,并且改两者中的一个,另一个也会生同的改

 

 

在实际应用中硬链接和符号链接(即软链接)很难区分,但它们的确是有区别的:

硬链接,只能应用于文件,而不能应用于目录,而且不能跨文件系统(即分区);

符号链接,可以应用于文件,而且可以应用于目录和可跨文件系统(分区);

这是它们在应用上的区别;

 

底层的区别:

当我们创建了一个文件的硬链接时,硬链接会使用和文件相同的inode号,此时我们发现,原来的文件的inode连接数由最初的1变为了2,实际上硬链接和文件使用了相同的inode,只不过是inode连接数增加了,删除文件不会影响硬链接,硬链接的inode数会从2变为1.

而在创建文件的软链接时,软链接会使用一个新的inode,所以软链接的inode号和文件的inode号不同,软链接的inode里存放着指向文件的路径,删除文件,软链接也无法使用了,因为文件的路径不存在了;当我们再次创建这个文件时(文件名与之前的相同),软链接又会重新指向这个文件(inode号与之前的不同了),而硬链接不会受其影响

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值