linux的链接方式

2023-10-31

linux的硬链接和软链接

1.链接的概念:

Linux链接分两种:一种被称为硬链接(Hard Link),另一种被称为软链接也叫符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

2.硬链接:

在Linux文件系统当中,保存在磁盘中的文件不管是什么类型都会有一个值叫做inode值(索引节点编号),硬链接允许多个文件的inode值相同,一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”。因为有多个文件指向同一文件,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,硬链接才彻底消失。

3.硬链接实验:

[root@servera]# touch a1.txt #创建一个测试文件
[root@servera]# ln a1.txt hard.txt #创建a1的一个硬链接文件hard.txt
[root@servera]# ls-li #-i参数显示文件的inode值
total 24
4318232 -rw-------. 1 root root 6947 Apr  4  2019 anaconda-ks.cfg
4318268 -rw-r--r--. 2 root root    7 Jun 26 20:06 a.txt
4318268 -rw-r--r--. 2 root root    7 Jun 26 20:06 hard.txt
4318231 -rw-------. 1 root root 6750 Apr  4  2019 original-ks.cfg

从上面的结果可以看出,硬链接文件hard与原文件a1的inode值相等,均为4318268

[root@servera]# echo "sannet" > a1.txt #向a1写入内容为sannet
[root@servera ~]# cat a1.txt #查看a1文件的内容
sannet
[root@servera ~]# cat hard.txt #查看硬链接hard文件的内容发现是一样的
sannet
[root@servera ~]# rm -f a1.txt #将原文件删除
[root@servera ~]# cat hard.txt #查看硬链接文件内容是否存在-->发现存在
sannet

通过上面的测试可以看出:当删除原文件a1后,硬链接不受影响

硬链接的局限性:

1.硬链接只能用于常规文件

2.不能创建目录或特殊文件的硬链接

[root@servera ~]# ln /etc/ c.txt
ln: /etc/: hard link not allowed for directory

3.硬链接不能跨文件系统

[root@servera ~]# ln hard.txt /mountpoint/a.txt
ln: failed to create hard link '/mountpoint/a.txt' => 'hard.txt': Invalid cross-device link
[root@servera ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  388M     0  388M   0% /dev
tmpfs          tmpfs     411M     0  411M   0% /dev/shm
tmpfs          tmpfs     411M   11M  400M   3% /run
tmpfs          tmpfs     411M     0  411M   0% /sys/fs/cgroup
/dev/vda1      xfs        10G  1.5G  8.6G  15% /
tmpfs          tmpfs      83M     0   83M   0% /run/user/0
/dev/vdb1      ext4      976M  2.6M  907M   1% /mountpoint

4.软链接:

也叫符号链接,有点类型Windows当中的快捷方式。它实际上是一个特殊的文件。在软链接当中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

5.软链接实验:

[root@servera ~]# touch soft.txt #创建原文件
[root@servera ~]# vim soft.txt
[root@servera ~]# ln -s soft.txt abc.txt #创建软链接
[root@servera ~]# ll -li #查看inode值
total 24
4427926 lrwxrwxrwx. 1 root root    8 Jun 27 00:46 abc.txt -> soft.txt
4318232 -rw-------. 1 root root 6947 Apr  4  2019 anaconda-ks.cfg
4318268 -rw-r--r--. 1 root root    7 Jun 26 12:06 hard.txt
4318231 -rw-------. 1 root root 6750 Apr  4  2019 original-ks.cfg
4195052 -rw-r--r--. 1 root root    7 Jun 27 00:45 soft.txt

从上面的结果可以看出,软链接文件abc.txt与原文件soft.txt的inode值不相等

 这种情况下我们称之为“断链”。

断链:指向缺失文件的软链接

软链接的优点:

1.可以指向目录或特殊文件,而不仅限于常规文件

[root@servera ~]# ln -s /etc/ directory
[root@servera ~]# ll -li
total 16
4318232 -rw-------. 1 root root 6947 Apr  4  2019 anaconda-ks.cfg
4427926 lrwxrwxrwx. 1 root root    5 Jun 27 09:09 directory -> /etc/
4318231 -rw-------. 1 root root 6750 Apr  4  2019 original-ks.cfg

2.可以跨越文件系统

[root@servera ~]# ln -s /abc/c.txt redhat.txt
[root@servera ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  388M     0  388M   0% /dev
tmpfs          tmpfs     411M     0  411M   0% /dev/shm
tmpfs          tmpfs     411M   11M  400M   3% /run
tmpfs          tmpfs     411M     0  411M   0% /sys/fs/cgroup
/dev/vda1      xfs        10G  1.5G  8.5G  15% /
tmpfs          tmpfs      83M     0   83M   0% /run/user/0
/dev/vdb1      ext4      976M  2.6M  907M   1% /abc

6.软链接与硬链接的区别:

硬链接只能作用于常规文件 软链接可以作用于常规文件、特殊文件、目录

硬链接不能跨越文件系统 软链接可以跨越文件系统

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux的链接方式 的相关文章

随机推荐

  • 车牌识别项目总结2019.9

    最近学了Python感觉很强大 对计算机视觉有些兴趣 于是来做一个车牌识别项目 其中学习了OpenCV Python MATLAB等 收获颇丰 写一篇文章记录一下 整体思路 车牌识别 LPR License Plate Recognitio
  • 超详细讲解无迹卡尔曼(UKF)滤波(个人整理结合代码分析)

    目录 1 用来做什么 2 线性卡尔曼滤波 3 扩展卡尔曼滤波 4 无迹卡尔曼滤波 1 用来做什么 针对系统的不确定性 1 不存在完美的数学模型 2 系统的扰动不可控 也很难建模 3 测量传感器存在误差 例1 通过系统的状态方程得出的电流值i
  • R中使用foreach时清理内存

    foreach能较大的提高计算速度 但是R不会自动清理内存 导致服务器内存经常占用过高 因此使用时需要及时清理内存 以如下例子所示 我需要读取一批excel文件 在运行下面的代码前 经过4次测试 Rstudio的内存情况是这样的 Mb 23
  • VMware安装虚拟机(小白看了都会哦)

    一 什么是VMware VMware是一款运行在windows系统上的虚拟机软件 可以虚拟出一台计算机硬件 方便安装各类操作系统 如Windows Macos Linux Unix等等 虚拟机 VM 是一种创建于物理硬件系统 位于外部或内部
  • 质疑百度的“国学”

    2006年11月03日 18 07 00 百度 这个名字取得非常好 他有一个广告 也不错 这些无不在向人们展示 汉语 的魅力和中国文化的底蕴 才可能构成今日 世界有Google 中国有百度 的格局 但是从百度其中一个产品 国学 来看 百度做
  • 反射、线程

    反射 如何在程序运行的情况下去创建另外一个对象 JAVA反射机制是在运行状态中 对于任意一个类 都能够知道这个类的所有属性和方法 对于任意一个对象 都能够调用它的任意一个方法和属性 这种动态获取的信息以及动态调用对象的方法的功能称为java
  • CNN浅析和历年ImageNet冠军模型解析

    版权声明 作者 黄文坚 本文为大数据杂谈4月13日微信社群分享内容整理 最新人工智能论文 http paperreading club 今天在这里我给大家讲解一些深度学习中卷积神经网络的原理和一些经典的网络结构 卷积神经网络原理浅析 卷积神
  • 苹果系统版本依次顺序_iphone所有型号上市顺序

    Ready 本期给大家讲讲iphone所有型号上市顺序 第一代iPhone于2007年1月9日由苹果公司前首席执行官史蒂夫 乔布斯发布 并在2007年6月29日正式发售 第二代iPhone 3G于2008年6月10日由美国苹果公司的掌门人史
  • 【Linux之shell脚本实战】统计 Linux 进程相关数量信息

    Linux之shell脚本实战 统计 Linux 进程相关数量信息 一 脚本要求 二 检查本地服务器状态 1 检查系统版本 2 检查系统内核版本 三 配置脚本注释模板 1 编辑 vimrc 文件 2 检查模板生效情况 四 编写ps aa s
  • 0基础速通MySql基础

    一 基本配置 经过一系列配置后 可以与客户端进行连接 二 基本操作 数据模型 1 关系型数据库 RDBMS 概念 建立在关系模型基础上 由多张相互连接的二维表组成的数据库 2 数据模型 MySQL是关系型数据库 是基于二维表进行数据存储的
  • 正点原子阿波罗STM32F429开发板资料发布,采用底板+核心板

    正点原子阿波罗STM32F429开发板资料发布 采用底板 核心板 https www amobbs com thread 5654611 1 1 html 正点原子STM32开发板 http www openedv com docs boa
  • IP addr添加网络的使用

    IP addr 添加网络的使用 添加IP到网口 root localhost ip addr add 192 168 10 100 24 dev em1 查看添加的IP root localhost ip addr show 移除添加的IP
  • 卸载或重新安装JDK出现"Windows Installer程序包有问题,此安装需要的DLL不能运行"解决方法(转)

    首先确保windows installer服务是开启的 运行services msc 看看windows installer服务是否启动 先启动看看能否解决 当然本人的是一直启动着的但还是卸载不了 想办法去删注册表却删不全 总是没法解决 之
  • 期货反向跟单的四大跟单禁忌

    对于在反向跟单路上的朋友 经典的 二八定律 这么完美 它依然坚不可摧 但是跟单落地的结果却不一定能成功 反向跟单经验已经做过多次介绍 不过成功各有不同 但是误区无非就以上几个 1忌 不加筛选 盲目乱跟 跟单的样本数据 必须经过筛选 不能不管
  • Arthas & GC日志-JVM(十八)

    上篇文章说jvm的实际运行情况 Jvm实际运行情况 JVM 十七 Arthas介绍 因为arthas完全是java代码写的 我们直接用命令启动 Java jar arthas boot jar 启动成功后 选择我们项目的进程 进入我们可用d
  • Uniapp学习之从零开始写一个简单的小程序demo(新建页面,通过导航切换页面,发送请求)

    先把官网文档摆在这 后面会用到的 uniapp官网文档 https uniapp dcloud net cn vernacular html 一 开发工具准备 1 1 安装HBuilder 按照官方推荐 先装一个HBuilder 下载地址
  • 修复maven缓存导致Jenkins打包失败

    问题 笔者近期在公司搭建了一个内网的nexus 所以每次有新项目要部署到Jenkins时需要使用脚本将相关依赖导入到nexus上 近期笔者在Jenkins配置了一个item报错 然后将相关依赖导入nexus中 再次打包时出现下面这段异常 笔
  • 【VUE】在vue项目实践当中使用swiper轮播图教程

    步骤 1 安装vue awesome swiper npm install vue awesome swiper S 2 在vue项目中引用vue awesome swiper main js import VueAwesomeSwiper
  • Java是面向过程语言还是面向对象语言?

    目录 一 面向过程语言 二 面向对象语言 三 Java是面向过程语言还是面向对象语言 一 面向过程语言 面向过程语言是一种编程范式 它将程序设计看作是按照一定的步骤或流程进行处理的过程 在面向过程语言中 程序员需要自己定义数据结构和算法 并
  • linux的链接方式

    linux的硬链接和软链接 1 链接的概念 Linux链接分两种 一种被称为硬链接 Hard Link 另一种被称为软链接也叫符号链接 Symbolic Link 默认情况下 ln命令产生硬链接 2 硬链接 在Linux文件系统当中 保存在