Linux下软链接与硬链接的区别
由于下面会说到inode
,所以如果没有了解过,请务必搞懂inode
的真正含义,厚颜无耻的推荐我的一篇博客:Linux磁盘与文件系统管理
如果我们在系统中新建一个文件,我们看到的文件名实际上只是表面现象,本质上会分配一个inode
给我们用,inode
记录的信息有:文件的block
位置,文件的UID,文件的GID,文件的读写执行权限等等,下面我们新建立一个名为file
的文件。
实际上file在我们系统中存在的样子更加形象的可以用下面的图片来表示:
file
只是个名字,我们可以用mv
命令更改这个名字,它只是让我们用户好记,并且从我们的角度为它分配某些含义而已(比如我们习惯将密码文件命名为passwd)。
我们看到changefile
和file
是一模一样的,没有任何差别,所以也就是说文件名并不能反映一个文件的属性。接下来我们就要说重点,软链接和硬链接了。
硬链接
硬链接实际上是一个文件inode
的别名,我们可以为一个inode
起很多个名字,同时让file
和changefile
存在也是可以的,就是建立硬链接,因为文件名不会对文件本身产生影响。
ln 命令可以用来建立链接,不加参数表示建立硬链接
-s:建立软链接
下面我们给changefile
建立硬链接file
,将我们的file
找回来。
通过ls -i
命令查看inode
我们发现它们是一样的,那么目前的情况会是怎样呢?如下:
只不过就是此inode
有两个名字了而已,我们通过任意一个文件名查看或者修改文件的内容,都会直接查看或者修改blocks
块中1,2,3
的内容,并且file
和changefile
之间是不会互相影响的,我们删除任何一个对对方没有任何影响,大不了就是inode
少一个名称而已。
软链接
与硬链接不同,软链接相当于快捷方式,当我们双击一个图标打开一个软件时,本质上是在执行一个.exe
文件一样,通过这个图标只能找到这个.exe
文件,执行的过程是.exe
完成的,如果.exe
找不到,那么这个快捷方式将会失效。因此在linux
中的软链接实际上是另一个文件,这个文件与原文件是不同的,唯一的特殊之处就是它的内容记录的是原文件的inode
,我们通过inode
再来找原文件的位置。
明显,softlink
和changefile
就是不同的文件。它的详细情况就像下面这样:
我们通过softlink
会找到inode1
的位置,然后通过它定位文件的block
,因此,如果一旦inode1
被删除了,那么softlink
就会无法找到文件,也就是这个软链接会失效。我们删除changefile
试试看:
[kiosk@yangbodong ~]$ echo hello > file //给file中写入hello
[kiosk@yangbodong ~]$ cat file changefile softlink //三个文件中都有hello
hello
hello
hello
[kiosk@yangbodong ~]$ rm -fr file //删除了file
[kiosk@yangbodong ~]$ cat softlink //由于目前changefile还存在,inode1存在,因此softlink是有效的
hello
[kiosk@yangbodong ~]$ rm -fr changefile //删除了changefile
[kiosk@yangbodong ~]$ cat softlink //目前softlink再也找不到原来的inode的位置,因此失效了。
cat: softlink: No such file or directory
软链接和硬链接的比较
软链接 | 硬链接 | |
---|---|---|
优点 | 可以对目录创建 | 安全,节省空间 |
缺点 | 消耗inode | 不能对目录创建,不能跨越文件系统 |
Linux下软链接与硬链接的区别的更多相关文章
- [转帖]Linux 下软链接和硬链接的区别
Linux 下软链接和硬链接的区别 http://os.51cto.com/art/201911/605267.htm 软连接 文件是小的 只是一个链接 删除和其他处理不影响 原始文件的计数 删除源文 ...
- linux下软链接与硬链接及其区别
linux下创建链接命令 ln -s 软链接 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最常用的参数是-s, 具体用法是:ln ...
- 描述Linux下软链接和硬链接的区别(计时2分钟)
在linux系统中,链接分两种 :一种被称为硬链接(Hard Link),另一种被称为符号链接或软链接(Symbolic Link). 1)默认不带参数情况下,ln命令创建的是硬链接. 2)硬链接文件 ...
- linux中软链接和硬链接的区别与小结
ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...
- linux下符号链接和硬链接的区别
存在2众不同类型的链接,软链接和硬链接,修改其中一个,硬链接指向的是节点(inode),软链接指向的是路径(path) 软连接文件 软连接文件也叫符号连接,这个文件包含了另一个文件的路径名,类似于wi ...
- 【转】Linux下软、硬链接的创建和删除
原文:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199534.html 在Linux系统中,内核为每一个新创建的文件分 ...
- linux下软、硬链接的创建和删除
linux下软.硬链接的创建和删除 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复 ...
- linux 创建软链接和硬链接
Linux 系统中有软链接和硬链接两种特殊的“文件”. 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录. 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案. ...
- ln命令:软链接与硬链接的区别与应用
ln命令:软链接与硬链接的区别与应用 摘要 Linux系统中,链接是一个十分常见且实用的文件处理命令,它分为软链接和硬链接两种类型.软链接类似于Windows中的快捷方式,硬链接又有着与原文件保持同步 ...
随机推荐
- Jmeter系列(23)- 常用逻辑控制器(2) | 事务控制器Transaction Controller
事务控制器(Transaction Controller) 作用 选择一些请求,作为事务,放在该控制器下 比如:我有三个请求,注册.登录.下单.这三个请求其实就是一个下单完成过程,可以作为一个下单事务 ...
- chrome浏览器中安装以及使用Elasticsearch head 插件
一.安装Elasticsearch head 插件 下载安装包:https://github.com/liufengji/es-head/commit/121cdcb6d1b18656461e4889 ...
- django安装xadmin
环境:pycharm django1.11.20 python2.7(根据网络上的资料,自己整理实现) 下载:https://github.com/sshwsfc/xadmin/tree/mast ...
- cgroup配置
待续... https://docs.hortonworks.com/HDPDocuments/HDP3/HDP-3.1.0/data-operating-system/content/enablin ...
- ARC115E-LEQ and NEQ【容斥,dp,线段树】
正题 题目链接:https://atcoder.jp/contests/arc115/tasks/arc115_d 题目大意 \(n\)个数字的序列\(x\),第\(x_i\in [1,A_i]\ca ...
- WPF进阶技巧和实战06-控件模板
逻辑树和可视化树 System.Windows.LogicalTreeHelper System.Windows.Media.VisualTreeHelper 逻辑树类(LogicalTreeHelp ...
- Spring自动装配歧义性笔记
Spring自动装配歧义性笔记 如果系统中存在两个都实现了同一接口的类,Spring在进行@Autowired自动装配的时候,会选择哪一个?如下: // 一下两个类均被标记为bean @Compone ...
- SphereEx 登陆 ApacheCon Asia|依托 ShardingSphere 可插拔架构体系打造数据应用完整生态
2021 年 8 月 8 日,ApacheCon 首次亚洲大会于线上正式闭幕.作为久负盛名的开源盛宴,本届 ApacheCon Asia 受到了海内外众多开源领域人士的关注. 作为 Apache 软件 ...
- bzoj1503 郁闷的出纳员(平衡树,思维)
题目大意: 现在有n个操作和一个最低限度m \(I\)命令\(I\ k\)新建一个工资档案,初始工资为k. \(A\)命令$A\ k $把每位员工的工资加上k \(S\)命令$S\ k $把每位员工的 ...
- PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)
1007 素数对猜想 (20分) 让我们定义dn为:dn = pn+1 − pn,其中pi是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...