1、Linux链接概念
  • Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,使用 ln 命令不加参数创建硬链接,加 -s 参数则创建软链接。
        硬链接
  • 硬链接即让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。
        软链接
  • 软链接也称之为符号链接(Symbolic Link)。这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。软链接类似于 Windows的快捷方式。 

 

2、软硬链接测试
[root@user ~]# touch f1             # 创建文件 f1 
[root@user ~]# ln f1 f2               # 创建 f1 的一个硬链接文件f2
[root@user ~]# ln -s f1 f3           # 创建 f1 的一个软链接文件f3
[root@user ~]# ls -li                    # -i参数显示文件的inode节点信息
total 24
17567 -rw-------. 1 root root 1115 Jan  9  2014 anaconda-ks.cfg
  175 -rw-r--r--. 1 root root 3486 Aug 18  2014 cloud-set-guest-password
  235 -rw-r--r--. 2 root root    0 Mar 14 12:18 f1
  235 -rw-r--r--. 2 root root    0 Mar 14 12:18 f2
  237 lrwxrwxrwx. 1 root root    2 Mar 14 12:14 f3 -> f1
   49 -rw-r--r--. 1 root root 8526 Jan  9  2014 install.log
   67 -rw-r--r--. 1 root root 3314 Jan  9  2014 install.log.syslog
  • 通过上面的测试可以看出:硬链接文件 f2 与源文件f1的 inode 节点均为 235,软链接 f3 则与两者的 inode 不同。
[root@user ~]# echo "I am f1" >> f1
[root@user ~]# cat f1
I am f1 
[root@user ~]# cat f2
I am f1
[root@user ~]# cat f3
I am f1
[root@user ~]# rm -f f1
[root@user ~]# cat f2
I am f1
[root@user ~]# cat f3
cat: f3: No such file or directory
  • 通过上面的测试可以看出:当删除原始文件 f1 后,硬链接 f2 不受影响,但是软链接 f1 文件失效

 

3、小结

硬链接相当于创建了源文件的副本,不会随着源文件的删除而消失,会随着源文件内容的更改而更改;

软链接相当于创建了源文件的快捷方式,会随着源文件的删除而失效;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐