linux软链接文件的特点,linux软链接与硬链接的区别

Linux

文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样可以让文件在文件系统中多处被看到。不过,在 Linux

中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本,linux有两种类型的链接:硬链接和符号链接(软链接)。

硬链接(hard link)只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为

inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。

另外一种链接称之为符号链接(Symbolic Link),也叫软链接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在软链接中,文件实际上是一个文本文件,其中包含有另一文件的位置信息,如果删了这个软链接文件,那就等于不需要这个链接,和原来存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接也不可用。

创建硬链接:ln filename 【linkname】

创建软链接:ln -s filename 【linkname】[root@liang opt]# touch aa     #创建文件aa

[root@liang opt]# ln aa bb     #创建aa的硬链接bb

[root@liang opt]# ln -s aa cc    #创建aa的软链接cc

[root@liang opt]# ll -i        #查看结果及inode值

总用量 0

2490370 -rw-r--r--. 2 root root 0 7月  30 04:36 aa

2490370 -rw-r--r--. 2 root root 0 7月  30 04:36 bb

2490371 lrwxrwxrwx. 1 root root 2 7月  30 04:36 cc -> aa

[root@liang opt]# ln ../opt/aa /boot/dd     #跨文件系统创建aa的硬链接dd,有报错信息

ln: 创建硬链接"/boot/dd" => "../opt/aa": 无效的跨设备连接

[root@liang opt]# ln -s ../opt/aa /boot/ee    #跨文件系统创建aa的软链接ee,无报错信息

[root@liang opt]# ll -i /boot/      #查看结果及inode值

39 lrwxrwxrwx. 1 root root        9 7月  30 04:37 ee -> ../opt/aa

[root@liang opt]# ln ff gg      #为不存在的ff创建硬链接gg,有报错信息

ln: 正在访问"ff": 没有那个文件或目录

[root@liang opt]# ln -s ff hh     #为不存在的ff创建软链接hh,无报错信息

[root@liang opt]# ll -i      #查看结果及inode值

总用量 0

2490370 -rw-r--r--. 2 root root 0 7月  30 04:36 aa

2490370 -rw-r--r--. 2 root root 0 7月  30 04:36 bb

2490371 lrwxrwxrwx. 1 root root 2 7月  30 04:36 cc -> aa

2490373 lrwxrwxrwx. 1 root root 2 7月  30 04:37 hh -> ff

[root@liang opt]# echo aaaaaaaaaa > aa    #在aa文件中写入内容

[root@liang opt]# cat aa       #查看源文件aa的内容

aaaaaaaaaa

[root@liang opt]# cat bb       #查看硬链接bb的内容

aaaaaaaaaa

[root@liang opt]# cat cc       #查看软链接cc的内容

aaaaaaaaaa

[root@liang opt]# rm -f aa     #删除源文件aa

[root@liang opt]# cat bb       #删除源文件aa后查看硬链接bb的内容

aaaaaaaaaa

[root@liang opt]# cat cc       #删除源文件cc后查看软链接cc的内容

cat: cc: 没有那个文件或目录

[root@liang opt]# ll -i        #删除源文件后查看链接结果及inode值

总用量 4

2490370 -rw-r--r--. 1 root root 11 7月  30 04:45 bb

2490371 lrwxrwxrwx. 1 root root  2 7月  30 04:36 cc -> aa

2490373 lrwxrwxrwx. 1 root root  2 7月  30 04:37 gg -> ff

从以上操作过程中可以看到硬链接文件与源文件的inode值一样,即硬链接文件与源文件同属一个数据块,软链接文件与源文件的inode值不一样,即软链接文件是单独存在的一个文本文件。当源文件被删除时,硬链接文件不受影响,而软链接文件则无效。

硬链接特性:文件有相同的 inode 及 data block;

只能对已存在的文件进行创建;

不能交叉文件系统进行硬链接的创建;

不能对目录进行创建,只可对文件创建;

删除一个硬链接文件并不影响其他有相同 inode 号的文件;

软链接特性:软链接有自己的文件属性及权限等;

可对不存在的文件或目录创建软链接;

软链接可交叉文件系统;

软链接可对文件或目录创建;

创建软链接时,链接计数 i_nlink 不会增加;

删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接);

如下图所示软链接、硬链接及源文件的关系:

2626a30c513f661efa2496ca388895bb.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值