linux中软连接和硬链接的区别
-
定义与概念
- 硬链接(Hard Link):硬链接是文件系统中的一个概念,它直接指向文件系统中的物理数据块。可以把硬链接看作是原始文件的一个别名,它们共享相同的inode(索引节点)编号。在Linux文件系统中,文件的inode存储了文件的元数据,如文件的所有者、权限、大小和数据块位置等信息。
- 软连接(Symbolic Link),也称为符号链接:软连接是一个特殊类型的文件,它包含了指向另一个文件或目录的路径。它类似于Windows系统中的快捷方式,只是一个指向实际文件或目录位置的指针。
-
创建方式
- 硬链接:使用
ln命令创建硬链接。例如,要为文件/home/user/file.txt创建一个硬链接/home/user/file_link.txt,可以使用命令ln /home/user/file.txt /home/user/file_link.txt。 - 软连接:同样使用
ln命令,但需要添加-s选项来创建软连接。例如,要为文件/home/user/file.txt创建一个软连接/home/user/file_symlink.txt,可以使用命令ln -s /home/user/file.txt /home/user/file_symlink.txt。
- 硬链接:使用
-
inode编号
- 硬链接:硬链接和原始文件具有相同的inode编号。例如,使用
ls -i命令查看文件和它的硬链接,可以发现它们的inode编号是一样的。这意味着它们在文件系统的存储层面是同一个实体,只是有不同的文件名。 - 软连接:软连接有自己独立的inode编号,它所指向的目标文件有另外的inode编号。当使用
ls -i查看时,可以明显区分软连接和它指向的文件。
- 硬链接:硬链接和原始文件具有相同的inode编号。例如,使用
-
文件内容与大小
- 硬链接:硬链接的文件内容和大小与原始文件完全相同,因为它们实际上是同一个文件在文件系统中的不同引用。对硬链接文件的修改会直接反映在原始文件上,反之亦然。
- 软连接:软连接文件本身很小,它的大小通常是指向目标文件路径字符串的长度。软连接文件的内容就是目标文件的路径。例如,如果目标文件路径是
/home/user/file.txt,软连接文件内容就是这个路径字符串,并且文件大小就是这个字符串的长度。
-
文件删除行为
- 硬链接:只要还有一个硬链接存在,文件的数据块就不会被删除。也就是说,即使删除了原始文件,只要有硬链接指向该文件的数据块,这些数据仍然可以通过硬链接访问。例如,有文件
A和它的硬链接B,删除A后,B仍然可以正常访问和使用。 - 软连接:如果删除了软连接指向的目标文件,软连接就会失效。当尝试访问失效的软连接时,会得到一个错误提示,如“文件不存在”。例如,软连接
C指向文件D,删除D后,C就无法正常访问D的内容了。
- 硬链接:只要还有一个硬链接存在,文件的数据块就不会被删除。也就是说,即使删除了原始文件,只要有硬链接指向该文件的数据块,这些数据仍然可以通过硬链接访问。例如,有文件
-
跨文件系统支持
- 硬链接:硬链接通常只能在同一个文件系统中创建。因为不同的文件系统有不同的inode结构和管理方式,所以无法跨文件系统创建硬链接。
- 软连接:软连接可以跨文件系统创建,因为它只是存储了目标文件的路径,不受文件系统结构差异的限制。例如,可以在一个挂载的外部存储设备(如USB硬盘)上创建一个软连接,指向本地文件系统中的文件。
相关文章:
linux中软连接和硬链接的区别
定义与概念 硬链接(Hard Link):硬链接是文件系统中的一个概念,它直接指向文件系统中的物理数据块。可以把硬链接看作是原始文件的一个别名,它们共享相同的inode(索引节点)编号。在Linux文件系统…...
#Swift 对比 Static 在Swift 和 OC中的用法
在 Objective-C 和 Swift 中,static 关键字都用于定义类型级别的成员,但它们的用法和行为在两个语言中有所不同。让我们来详细对比一下 Objective-C 和 Swift 中 static 的使用方式和特性。 1. Objective-C 中的 static 在 Objective-C 中,…...
yakit使用教程(三,端口探测和指纹扫描)
本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 前文链接:yakit下载安装教程。 1.端口扫描的作用。 对目标端口进行扫描可以知道目标服务器开启了什么服务,以便于针对其所存在的服务展开…...
一维数组的引用
#define SIZE 5 int main(void) { int i 0; int arr[SIZE] { 86,85,85,896,45 };//同理五个数据只是偶然,可能会更多 //输入 for (i 0;i < SIZE;i) { printf("请输入你的第%d个值:",i1); scanf_s(&…...
Vue3 watch 监视属性
作用:监视数据的变化(和Vue2中的watch作用一致)特点:Vue3中的watch只能监视以下四种数据: ref定义的数据。reactive定义的数据。函数返回一个值(getter函数)。一个包含上述内容的数组。 我们在V…...
大数据-158 Apache Kylin 安装配置详解 集群模式启动
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
PHP商会招商项目系统一站式服务助力企业腾飞
商会招商项目系统——一站式服务,助力企业腾飞 🚀💼 🚀 开篇:企业成长的加速器,商会招商项目系统来袭 在竞争激烈的市场环境中,企业如何快速找到适合自己的发展路径,实现腾飞&…...
pnpm 和 npm
pnpm 和 npm 是 JavaScript 生态系统中常用的包管理工具,它们各自有不同的特性和优缺点。下面是这两者的详细比较: 1. 基本概念 npm (Node Package Manager): 是 Node.js 的默认包管理器,提供安装、更新、卸载 JavaScript 包的功…...
笔试算法总结
文章目录 题目1题目2题目3题目4 题目1 使用 StringBuilder 模拟栈的行为,通过判断相邻2个字符是否相同,如果相同就进行删除 public class Main {public static String fun(String s) {if (s null || s.length() < 1) return s;StringBuilder builde…...
mybatisPlus对于pgSQL中UUID和UUID[]类型的交互
在PGSQL中,有的类型是UUID和UUID[]这种类型,在mybatis和这些类型交互的时候需要手动设置类型处理器才可以,这里记录一下类型处理器的设置 /*** UUID类型处理器*/ public class UUIDTypeHandler extends BaseTypeHandler<UUID> {/*** 获…...
vue3 高德地图标注(飞线,呼吸点)效果
装下这两个 npm 忘了具体命令了,百度一下就行 “loca”: “^1.0.1”, “amap/amap-jsapi-loader”: “^1.0.1”, <template><div id"map" style"width: 100%;height: 100%;"></div> </template><script setup> …...
程序员成长秘籍:是迈向管理巅峰,还是深耕技术架构?
专业在线打字练习平台-巧手打字通,只输出有价值的知识。 一 管理和架构 做技术的同学一般有两条职业发展路径,横向的管理路线和纵向的技术路线。管理路线对应的是管理岗,讲究的是排兵布阵,通过各种资源的优化配置发挥价值。技术路…...
xargs的参数及常用命令
1. xargs 命令简介 xargs 是一个非常有用的工具,它用于从标准输入(stdin)构建和执行命令行。xargs 可以将标准输入中以空格或换行符分隔的数据,转化为命令的参数传递给其他命令。 使用场景: 当某些命令不支持使用管…...
FLASK 数据库建立以及部署和表的创建
首先安装flask-sqlalchemy db SQLAlchemy(app) 一 Mmeber、User模型类的创建 # coding: utf-8 from app import db, appclass Member(db.Model):__tablename__ memberid db.Column(db.Integer, primary_keyTrue)membername db.Column(db.String(100), uniqueTrue, index…...
微信小程序的面试题
简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch() 区别 ? wx.navigateTo() : 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 wx.redirectTo() : 关闭当前页面,跳转到应用内的…...
udp c语言实现组播的例子
一、组播与广播的区别 1、组播地址和广播地址是不同的概念 组播地址:用于将数据包发送到一组特定的接收者,只有加入该组播地址的设备才能接收数据。它提高了网络效率,因为发送者只需发送一份数据。 广播地址:用于将数据包发送到…...
ffmpeg面向对象——AVInputFormat与URLProtocol啥关系
《ffmpeg面向对象-rtsp拉流相关对象》和《ffmpeg面向对象——拉流协议匹配机制探索》探索过了输入格式匹配和底层协议匹配,且ffmpeg拉流是先是匹配输入格式——抽象为AVInputFormat类,然后再匹配url协议类——抽象为URLProtocol类。 它们是啥关系&#…...
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解
高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!二叉搜索树 大家好,这里是店小二!今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树,可以看作是对传统二叉搜索树的优化版本。如果你对数据结…...
中级软考软件设计师真题+模拟题+课件讲解+机考讲解模拟+笔记分享
软考真题分享 下载链接⬇️⬇️: 下载链接...
MySQL—视图
前言: 视图是一个虚拟的表,是基于一个或多个基本表或其他视图的查询结果集。视图本身不占据物理储存空间,仅仅只是一个查询的逻辑表示,物理上依赖于数据表的数据。 视图具有简单,安全,逻辑数据独立&#…...
Windows/Mac/Linux三平台实测:X-AnyLabeling自动标注YOLO数据集避坑指南
Windows/Mac/Linux三平台实测:X-AnyLabeling自动标注YOLO数据集避坑指南 在计算机视觉项目的开发流程中,数据标注往往是耗时最长的环节之一。传统手动标注不仅效率低下,还容易因疲劳导致标注质量下降。X-AnyLabeling作为一款新兴的开源标注工…...
「5 个 Markdown 文件 + 1 句提示词」让 AI 精准重构你的 React 组件 | 附完整模板
这个场景你一定经历过: 你给 ChatGPT/Claude 一个又臭又长的 React 组件,说:"帮我重构一下,让它更清晰。" 结果要么: 改错了交互逻辑,导致功能崩溃改变了接口契约,后端完全适配不了代…...
告别乱码!手把手教你用FreeType给OpenCV项目添加中文水印(附完整C++代码)
告别乱码!手把手教你用FreeType给OpenCV项目添加中文水印(附完整C代码) 在数字图像处理领域,为图片添加水印是一项常见需求。无论是版权保护、品牌推广还是内容标识,水印都能发挥重要作用。然而,当开发者使…...
UMA模型深度解析:机器学习加速的科学计算革命与高通量筛选架构揭秘
UMA模型深度解析:机器学习加速的科学计算革命与高通量筛选架构揭秘 【免费下载链接】ocp Open Catalyst Projects library of machine learning methods for catalysis 项目地址: https://gitcode.com/GitHub_Trending/oc/ocp 在计算材料科学与催化研究领域…...
5步构建适合你的Yuzu版本管理系统:写给模拟器玩家的效率指南
5步构建适合你的Yuzu版本管理系统:写给模拟器玩家的效率指南 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 还在为Yuzu模拟器版本选择而困惑?为什么新游戏在最新版模拟器上反而卡顿&#x…...
基于MATLAB的小波变换在碰磨故障信号特征提取中的应用
2-23 基于matlab的小波变换碰磨故障信号的特征提取 基于matlab的小波变换碰磨故障信号的特征提取,可以画出信号原图,轴心轨迹,频谱图以及多层小波变换的重构信号。 程序已调通,可直接运行。最近在搞旋转机械碰磨故障诊断ÿ…...
Ensp与SecureCRT高效连接指南及常见回车空行问题排查
1. Ensp与SecureCRT连接全流程详解 第一次用Ensp连接SecureCRT时,我也被那一堆串口参数搞得头晕。后来才发现,只要掌握几个关键步骤,整个过程其实非常简单。下面我就把踩坑后总结的最稳定连接方案分享给大家。 1.1 软件安装与环境准备 在开始…...
4大价值点:旧设备复活开源工具如何让经典iOS设备重获新生?
4大价值点:旧设备复活开源工具如何让经典iOS设备重获新生? 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-…...
比迪丽LoRA模型Ubuntu部署教程:3步完成环境配置与启动
比迪丽LoRA模型Ubuntu部署教程:3步完成环境配置与启动 想在自己的Ubuntu服务器上体验比迪丽LoRA模型,生成风格独特的AI图像,但被复杂的部署步骤劝退?别担心,这篇教程就是为你准备的。我们绕开那些繁琐的源码编译和环境…...
终极罗技鼠标压枪宏指南:3分钟快速上手,告别武器后坐力困扰!
终极罗技鼠标压枪宏指南:3分钟快速上手,告别武器后坐力困扰! 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg …...
