linux硬链接与软链接

2023-11-03

http://www.cnblogs.com/sonic4x/archive/2011/08/05/2128543.html

1.Linux链接概念
Linux
链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止误删的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

硬连接的2个限制:

l  不允许给目录创建硬链接

l  只有在同一文件系统中的文件之间才能创建链接。 即不同硬盘分区上的两个文件之间不能够建立硬链接。这是因为硬链接是通过结点指向原始文件的,而文件的i-结点在不同的文件系统中可能会不同。

 

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

      这就允许符号链接(经常简写为symlinks)指向位于其他分区、甚至是其他网络硬盘上的某个文件

 

2.通过实验加深理解
[oracle@Linux]$ touch f1          #
创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #
创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #
创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i
参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f3文件无效

3. 总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).
删除符号连接 f3, f1,f2 无影响;
2).
删除硬连接 f2 ,对 f1,f3 也无影响;
3).
删除原文件 f1 ,对硬连接 f2 没有影响,导致符号连接 f3 失效;
4).
同时删除原文件 f1, 硬连接 f2 ,整个文件会真正的被删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux硬链接与软链接 的相关文章

  • linux 增加静态路由命令

    linux 临时修改路由 方法一 添加路由 route add net 192 168 2 0 24 gw 192 168 1 1 或 route add host 192 168 2 8 dev 192 168 1 1 删除路由 rout
  • ubuntu下ssh2安装

    iceant iceant desktop share ssh localhost ssh connect to host localhost port 22 Network is unreachable iceant iceant des
  • ubuntu安装ftp服务器( 一般配置 )

    http blog csdn net nation chen article details 7066277 ubuntu安装ftp服务器 1 安装vsftpd sudo apt get install vsftpd ubuntu10 10
  • addr2line objdump命令使用方法

    如果是 的 CMakeList txt 编译的时候需要加上一下选项 才可以生产 版本 可以使用addr2line 定位问题 catkin make DCMAKE BUILD TYPE debug DCATKIN WHITELIST PACK
  • 【Linux

    目录 一 概述 二 test 命令 2 1 test 命令 2 2 方括号测试条件 2 3 test 命令和测试条件可以判断的 3 类条件 2 3 1 数值比较 2 3 2 字符串比较 三 复合条件测试 四 if then 的高级特性 五
  • Dell工作站8T硬盘安装ubuntu 16.04

    Dell工作站8T硬盘安装ubuntu 16 04 MBR文件系统仅支撑2T磁盘 因此在2T以上磁盘上安装ubuntu时 如果想利用全部磁盘空间 需要采用GPT分区 文件系统 模型 这需要重新分区 制作Ubuntu 16 04启动U盘 一
  • VirtualBox中Ubuntu 14.04 LTS安装GATE7.1

    开发环境 win7 VirtualBox Ubuntu 14 04 LTS 主要参考博客 1 Compilation Instructions V7 1 2 Gate7 1在Ubuntu下编译 3 Package Requirements
  • Linux gdm问题解决解决

    修改 etc inittab 改变runlevel为5 例如 root QRedHat etc cat etc inittab id 5 initdefault 修改GDM的配置文件 etc X11 gdm gdm conf 将 xdmcp
  • 07 - 日志服务器的搭建与攻击

    目录 1 项目环境 2 拓扑图 3 思路 4 配置GW CentOS 7 4 1 配置ens33 4 2 配置ens32 4 3 配置ens34 5 配置Server CentOS 7 1804 7 配置Syslog CentOS 7 18
  • Linux文件误删除恢复操作

    本文参考http write blog csdn net postedit ticket ST 491405 OGjDDusZeyMgVQ7bHW7f passport csdn net 前言 作为一个多用户 多任务的操作系统 Linux下
  • Linux系统:stress-ng测压工具

    目录 一 理论 1 stress工具简介与安装 2 语法及参数 3 具体安装 二 实验 1 运行8 cpu 4 fork 5 hdd 4 io 50 vm 10小时 2 CPU测试 3 内存测试 4 IO测试 5 磁盘及I O测试 三 问题
  • 日志查找常用命令-超实用

    0 前言 1 命令的尾部添加 color 或者 color auto 可以使关键字带颜色 很清晰 1 Linux日志查找常用命令 1 1 cat zcat cat n app log grep error 查询日志中含有某个关键字error
  • Ubuntu安装java

    转自 https www cnblogs com ziyue7575 p 13898610 html java8 apt安装 参考 https www cnblogs com zzy1024 p 11406269 html 若是没有配置国内
  • docker教程:从头基于空镜像scratch创建一个新的Docker镜像

    从头基于空镜像scratch创建一个新的Docker镜像 我们在使用dockerfile构建镜像时 一种方式是使用预制镜像 这样可以省很多工作量 但问题是镜像会变得特别大 尤其是安装一些应用程序所需的依赖后 镜像的尺寸会更大 如果我们的需求
  • CentOS8 MySQL 主主模式+keepalived高可用环境搭建非docker版

    概述 采用了MySQL KeepAlived实现MySQL高可用 旨在当主机发生宕机等异常情况时 使用备机的MySQL服务 以此保证系统服务的高可用 这套环境的搭建过程中 需要注意的事项如下 1 MySQL是否数据同步 在大批量数据写入的情
  • bash: ./main.o: cannot execute binary file: Exec format error解决方法

    在linux中使用make编译文件后执行 main o 出现了bash main o cannot execute binary file Exec format error的错误 解决方法 将malefile中的 TARGET main
  • Linux Top 命令解析

    转自 http www jb51 net LINUXjishu 34604 html TOP是一个动态显示过程 即可以通过用户按键来不断刷新当前状态 如果在前台执行该命令 它将独占前台 直到用户终止该程序为止 比较准确的说 top命令提供了
  • Centos7.4制作简易RPM包

    准备nginx 1 10 1 tar gz 准备php 7 1 7 tar bz2 这两个源码编译tar包 1 准备制作环境 yum y install rpm build 安装rpm build软件 rpmbuild ba xx spec
  • Linux的目录切换和用户管理

    切换目录 在使用linux系统的时候 会用cd来切换目录 cd 切换到根目录 cd 切换到主目录 cd 切换到之前工作目录 cd 虽然很方便但只能保存一次目录 pushd命令使用目录堆栈可以把多个目录存放起来 配套使用pushd popd
  • docke的基础入门

    docker基础入门操作 一 如何安装docker 一 如何安装docker 安装docker命令通过一下命令顺序执行 即可进行安装 校验操作系统内核版本 要求是3 10以上的版本 1 安装一些必要的系统工具 其中yum utils包含yu

随机推荐

  • Oracle单表备份三种方案

    备份方案一 备份 create table 备份名 as select from 表名 恢复 truncate table org group insert into org group select from 备份名 说明 此种情况适用于
  • 正则表达式(JAVA)

    正则表达式 JAVA 文章目录 正则表达式 JAVA 用法 字符类 只匹配一个字符 预定义字符 只匹配一个字符 数量词 贪婪爬取 符号 捕获分组 规则 捕获分组 符号 非捕获分组 案例 忽略大小写 用法 正则表达式在用于校验信息是否满足某些
  • C练题笔记之:Leetcode-827. 最大人工岛

    题目 给你一个大小为 n x n 二进制矩阵 grid 最多 只能将一格 0 变成 1 返回执行此操作后 grid 中最大的岛屿面积是多少 岛屿 由一组上 下 左 右四个方向相连的 1 形成 示例 1 输入 grid 1 0 0 1 输出
  • 测试Qt是否安装成功

    1 打开Qt软件 选择新建项目 new 选择基类时 一次使用选择QWigget空白窗口 还有2种 带菜单栏的窗口和对话框窗口 选中Generate form会生成图形界面 组件直接拖拉 不需要自己编写 运行结果
  • 数据仓库与数据湖

    一 数据仓库与数据湖的区别 一是存储数据类型不同 数据仓库中存储的主要是结构化数据 对于加载到数据仓库中的数据 首先需要定义数据存储模型 而数据湖以其原生格式保存大量原始数据 包括结构化的 半结构化的和非结构化的数据 并且在使用数据之前 不
  • 38个LoadRunner性能测试常见要点,来看看你缺了什么!

    测试的工作非常枯燥 枯燥的工作很容易使一个人变得麻木 以至于在重复的工作中出现差池也不自知 特别是性能测试这一块 又是重要程序 稍有差池就会对后面的产生不必要的成本 本文讲根据之前个人从事性能测试的经验外加当前性能测试岗位的同事 从里到外地
  • MES系统排行

    MES系统厂商排名榜 一是国内MES厂商 另一类是国外MES系统厂商 国内MES供应商的技术架构 功能设置上与国外MES供应商之间的的差距逐渐缩小 国外MES系统厂商是这个行业的发起者 但是逐渐又被国内MES厂商超越的趋势 MES系统国内厂
  • TCP为什么要三次握手(三次数据传输)而不是两次?TCP为什么要释放连接?

    TCP的运输连接 TCP的运输连接是有三个阶段 建立连接 数据传送和连接释放 TCP的连接过程 假设A就是客户程序 B就是TCP服务器程序 第一次握手 A的TCP客户端给服务器端TCP会发送一个特殊的TCP数据段 其是不包含应用层数据的 单
  • table 点击编辑 修改当前行

    table 点击编辑 修改当前行 先看效果图 html js
  • 【JVM】垃圾收集算法

    文章目录 分代收集理论 标记 清除算法 标记 复制算法 标记 整理算法 分代收集理论 当前商业虚拟机的垃圾收集器 大多数都遵循了 分代收集 Generational Collection 1 的理论进 行设计 分代收集名为理论 实质是一套符
  • JMeter 集合点技术详解

    集合点目的 在性能测试过程中 我们通常会在线程组中设置并发用户数 但是在Jmeter的各个线程在进行业务操作的顺序会存在一定的随机性 那么集合点的目的主要是让各个线程步调一致 对系统进行加压 从而达到模拟真实并发访问的效果 创建集合点 如图
  • Docker学习(高级篇)

    docker基础篇 文章目录 一 Mysql主从复制 二 安装redis集群 一致哈希 哈希槽分区 redis集群 主从容错切换迁移案例 主从扩容案例 主从缩容案例 三 DockerFile DockerFile常用保留字指令 案例 虚悬镜
  • windows下运行SyntaSpeech

    SyntaSpeech是2022年5月份浙大提出的 结合图神经网络在TTS声学模型进行的改进 只提供了Ubuntu的版本 但是手上正好有一台windows 所以看看Windows下面能不能跑 其中有几个需要修改的点 因为是改完了才写的blo
  • 刷完OpenWrt在浏览器无法访问的解决办法

    其实问题很明显 是因为刷了trunk版固件 并没有集成luci 那接下来就是装luci 但是装luci需要联网 不过其实不联网其实也是可以安装的 我说的联网是让路有联网 而不是网线接路由 路由接电脑 然后电脑拨号上网 这种联网 如何让路由联
  • 【HarmonyOS】ArkTS学习之页面转场动画的实现

    关键字 ArkTS 转场动画 PageTransitionEnter PageTransitionExit 介绍 动画交互的实现是一种提升用户体验的方式 动画分为属性属性动画 显示动画 转场动画和路径动画 而转场动画又包含页面间转场 组件内
  • Android Studio 的Gradle版本修改

    使用Android Studio构建项目时 需要配置Gradle 与Gradle插件 Gradle是一个构建工具 用于管理和自动化Android项目的构建过程 它使用Groovy或Kotlin作为脚本语言 并提供了强大的配置能力来定义项目的
  • 问题问题三道杠

    阿萨德
  • [从零开始学习FPGA编程-50]:视野篇 - 芯片是如何被制造出来的?芯片制造的十三大步骤。

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 什么是芯片 一颗芯片就是一个城市 总体流程
  • caffe(五)Solver解析

    Solver src caffe solver cpp Init template
  • linux硬链接与软链接

    http www cnblogs com sonic4x archive 2011 08 05 2128543 html 1 Linux链接概念 Linux链接分两种 一种被称为硬链接 Hard Link 另一种被称为符号链接 Symbol