Linux 中软链接和硬链接的使用
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。
硬链接和软链接
硬链接 --- ln 要链接的文件 新硬链接名
软连接 --- ln -s 要链接的文件 新软链接名
# 硬链接 删除 f1, f2依然有效, 直到把所有相关连的硬链接都删除, 文件才会删除
ln f1 f2
# 软链接 删除 f1, f2就无效了
ln -s f1 f2
硬链接
# 语法: ln 要链接的文件 生成的硬链接名
# 创建f1的一个硬连接文件f2
ln f1 f2
- 硬链接是指通过索引节点来连接的, 在Linux文件系统中, 保存在磁盘中文件都会给它分配一个编号, 这个称之为索引节点号(Inode Index)。在Linux中存在多个文件名指向同一索引节点。比如:A是B的硬链接, 那么A和B就都指向同一索引节点, 删除A并不会影响B。
测试
[root@VM-0-5-centos test]# echo "Hello,World" >> F1 #先在 F1 中写入 "Hello,World"
[root@VM-0-5-centos test]# ls #查看, 可以看到 F1 文件
F1
[root@VM-0-5-centos test]# cat F1 # 查看 F1 的内容, 可以看到是 Hello,World
Hello,World
[root@VM-0-5-centos test]# ln F1 F2 # 创建F1的一个硬连接文件F2
[root@VM-0-5-centos test]# ls -li # 查看 inode 节点相同,均为 1180919
1180919 -rw-r--r-- 2 root root 12 Oct 22 17:45 F1
1180919 -rw-r--r-- 2 root root 12 Oct 22 17:45 F2
[root@VM-0-5-centos test]# cat F2 # 查看 F2 的内容, 和F1一样
Hello,World
[root@VM-0-5-centos test]# echo "改变F2" >> F2 # 往F2 追加内容 "改变F2"
[root@VM-0-5-centos test]# cat F2 # 查看 F2
Hello,World
改变F2
[root@VM-0-5-centos test]# cat F1 # 查看 F1, 可以发现 F1 也改变了
Hello,World
改变F2
[root@VM-0-5-centos test]# rm -rf F1 # 删除 F1
[root@VM-0-5-centos test]# cat F2 # F2 依旧不受影响
Hello,World
改变F2
软链接
# 语法: ln -s 要链接的文件 生成软链接文件名
# 创建f1的一个符号连接文件f2
ln -s f1 f2
- 符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
[root@centos home]# touch f1 # 创建一个测试文件f1;
[root@centos home]# ls
f1
[root@centos home]# ln -s f1 f3 # 创建f1的一个符号连接文件f3;
[root@centos home]# ls -li # -i参数显示文件的inode节点信息;
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f1
397248 lrwxrwxrwx 1 root root 2 Mar 13 00:50 f3 -> f1
[root@centos home]# rm -f f1 # 删除原文件f1,导致符号连接f3失效;
[root@centos home]# cat f3
cat: f3: No such file or directory
结论
- 删除原文件,对硬连接没有影响,符号连接则会失效;
- 同时删除原文件 ,和硬连接,整个文件会真正的被删除。
Linux 中软链接和硬链接的使用的更多相关文章
- linux中软链接和硬链接的区别与小结
ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...
- [转帖]Linux 下软链接和硬链接的区别
Linux 下软链接和硬链接的区别 http://os.51cto.com/art/201911/605267.htm 软连接 文件是小的 只是一个链接 删除和其他处理不影响 原始文件的计数 删除源文 ...
- Windows和Linux创建软链接和硬链接
1.Wondows创建软链接和硬链接 mklink [/d] [/h] link target /d--创建目录软链接:默认为文件软链接:创建目录链接时必须使用该选项不然创出的软链接无效 /h--创建 ...
- Linux之软链接与硬链接
什么是链接? 链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件. 它是用来干什么的? 你可以将链接简单地理解为 Windows 中常见的快捷方式(或是 OS ...
- linux下软链接与硬链接及其区别
linux下创建链接命令 ln -s 软链接 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最常用的参数是-s, 具体用法是:ln ...
- linux 创建软链接和硬链接
Linux 系统中有软链接和硬链接两种特殊的“文件”. 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录. 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案. ...
- linux中软连接和硬链接的区别
linux中创建软连接和硬链接的方法: 软连接: ln -s oldfile slink 硬连接: ln oldfile hlink linux中创建软连接和硬链接的区别: 原理上,硬链 ...
- linux文件软链接与硬链接
1.命令格式: ln [参数][源文件或目录][目标文件或目录] 软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间. 2.命令功能: Linux文件系统中,有所谓的链接(link),我们 ...
- Linux下软链接与硬链接的区别
由于下面会说到inode,所以如果没有了解过,请务必搞懂inode的真正含义,厚颜无耻的推荐我的一篇博客:Linux磁盘与文件系统管理 如果我们在系统中新建一个文件,我们看到的文件名实际上只是表面现象 ...
随机推荐
- 大白话详解大数据hive知识点,老刘真的很用心(2)
前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的内容详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 1. hive知识点(2) 第12点:hive分桶表 hive知识点主要偏实践, ...
- 使用git客户端免密码进行拉取等相关操作
前言 如果使用git客户端进行pull或push操作时,遇到有权限的项目总要输入用户名密码,真的是太麻烦了,因此需要稍作修改,然后就可以免密码操作啦! 方法: 进入C盘->用户->你的主机 ...
- 06 python开发之函数
06 python开发之函数 目录 06 python开发之函数 6 函数 6.1 基本使用 6.1.1 基本概念 6.1.2 定义函数 6.2 调用函数与函数返回值 6.2.1 调用函数三种形式 6 ...
- Navicat12白嫖安装
读书人怎么能算白嫖呢 搬运链接https://my.oschina.net/ZL520/blog/3070953 链接:https://pan.baidu.com/s/1jNBO9EzTzhalMgm ...
- Nginx(二):配置文件
nginx.conf 配置文件 nginx 安装目录下,主配置文件 nginx.conf [root@localhost nginx]# cd /etc/nginx/ [root@localhos ...
- Python高级语法-import导入-sys.path(4.4.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 在开发程序的过程中,往往使用sys.path去验证下导入的目录,返回的是列表 先后顺序,就是扫描的先后顺序 ,也可以加入搜索路径 import有个特点 ...
- MySQL索引的使用是怎么样的?5个点轻松掌握!
一.前言 在MySQL中进行SQL优化的时候,经常会在一些情况下,对MySQL能否利用索引有一些迷惑. 譬如: MySQL 在遇到范围查询条件的时候就停止匹配了,那么到底是哪些范围条件? MySQL ...
- 微服务痛点-基于Dubbo + Seata的分布式事务(AT)模式
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. ...
- Apache Calcite 论文学习笔记
特别声明:本文来源于掘金,"预留"发表的[Apache Calcite 论文学习笔记](https://juejin.im/post/5d2ed6a96fb9a07eea32a6f ...
- 由innodb锁引起的数据库相关
innodb 锁的问题 1.事务 原子性:要么成功,要么失败 一致性:前后数据保持一致状态 隔离性:多个事务并行,相互不影响 持久性:事务提交之后,对数据的影响是永久性的,即使故障也可以保持. 2.并 ...