原创系统笔记

Linux的软链接与硬链接

本文阅读 3 分钟
首页 系统笔记 正文

Linux 系统中存在软链接和硬链接两种不同的类型。

  • 软链接:类似于 Windows 系统的“快捷方式”具有一样的性质。用户访问软链接的效果如图所示。也叫符号链接(symbolic link),仅仅包含所链接文件的名称和路径,很像一个记录地址的标签。当原始文件被删除或移动后,新的链接文件也会随之失效,不能被访问。
  • 硬链接:可以将它理解为一个“指向原始文件 block 的指针”,系统会创建出一个与原来一模一样的 inode 信息块。所以,硬链接文件与原始文件其实是一模一样的,只是名字不同。每添加一个硬链接,该文件的 inode 个数就会增加 1;而且只有当该文件的 inode 个数为 0 时,才算彻底将它删除。需要注意的是,由于技术的局限性,不能跨分区对目录文件进行硬链接。用户访问硬链接的效果如下图所示

ln 命令

ln 命令用于创建文件的软硬链接,英文全称为“link”,语法格式为“ ln [参数]原始文件名 链接文件名 ”。ln 命令的可用参数以及作用如下表所示。在使用 ln 命令时,是否添加 -s 参数,将创建出性质不同的两种“快捷方式”。

参数作用
-s创建“符号链接” (如果不带 -s 参数,则默认创建硬链接)
-f强制创建文件或目录的链接
-i覆盖前先询问
-v显示创建链接的过程

软链接

[root@serverA ~]# echo "Welcome to www.zxbke.cn" > old.txt    //创建一个文件
[root@serverA ~]# ln -s old.txt new.txt   //创建软链接 ,名为 new.txt
//原始文件名为 old,新的软链接文件名为 new。删掉原始文件后,软链接文件立刻就无法读取了:
[root@serverA ~]# rm -f old.txt   //删除源文件
[root@serverA ~]# cat new.txt    //无法访问
    cat: new.txt: No such file or directory

硬链接

创建的硬链接不再依赖于原始文件的名称等信息,也不会因为原始文件的删除而导致无法读取了。同时可以看到创建硬链接后,原始文件的硬盘链接数量增加到了 2。

[root@serverA ~]# echo "Welcome to www.zxbke.cn" > old.txt
[root@serverA ~]# ln old.txt new.txt   //创建硬链接
[root@serverA ~]# ls -l old.txt 
-rw-r--r--. 2 root root 24 Sep 26 03:52 old.txt
[root@serverA ~]# ls -l new.txt 
-rw-r--r--. 2 root root 24 Sep 26 03:52 new.txt
// 2 表示文件的inode信息块的数量。只有文件 inode 数量被“清零”时,才代表这个文件被删除了。
[root@serverA ~]# rm -f old.txt 
[root@serverA ~]# cat new.txt 
Welcome to www.zxbke.cn
原创文章,作者:張旭,如若转载,请注明出处:http://www.zxbke.cn/59.html/

发表评论