当前位置: 首页 > news >正文

linux中软连接和硬链接的区别

  1. 定义与概念

    • 硬链接(Hard Link):硬链接是文件系统中的一个概念,它直接指向文件系统中的物理数据块。可以把硬链接看作是原始文件的一个别名,它们共享相同的inode(索引节点)编号。在Linux文件系统中,文件的inode存储了文件的元数据,如文件的所有者、权限、大小和数据块位置等信息。
    • 软连接(Symbolic Link),也称为符号链接:软连接是一个特殊类型的文件,它包含了指向另一个文件或目录的路径。它类似于Windows系统中的快捷方式,只是一个指向实际文件或目录位置的指针。
  2. 创建方式

    • 硬链接:使用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
  3. inode编号

    • 硬链接:硬链接和原始文件具有相同的inode编号。例如,使用ls -i命令查看文件和它的硬链接,可以发现它们的inode编号是一样的。这意味着它们在文件系统的存储层面是同一个实体,只是有不同的文件名。
    • 软连接:软连接有自己独立的inode编号,它所指向的目标文件有另外的inode编号。当使用ls -i查看时,可以明显区分软连接和它指向的文件。
  4. 文件内容与大小

    • 硬链接:硬链接的文件内容和大小与原始文件完全相同,因为它们实际上是同一个文件在文件系统中的不同引用。对硬链接文件的修改会直接反映在原始文件上,反之亦然。
    • 软连接:软连接文件本身很小,它的大小通常是指向目标文件路径字符串的长度。软连接文件的内容就是目标文件的路径。例如,如果目标文件路径是/home/user/file.txt,软连接文件内容就是这个路径字符串,并且文件大小就是这个字符串的长度。
  5. 文件删除行为

    • 硬链接:只要还有一个硬链接存在,文件的数据块就不会被删除。也就是说,即使删除了原始文件,只要有硬链接指向该文件的数据块,这些数据仍然可以通过硬链接访问。例如,有文件A和它的硬链接B,删除A后,B仍然可以正常访问和使用。
    • 软连接:如果删除了软连接指向的目标文件,软连接就会失效。当尝试访问失效的软连接时,会得到一个错误提示,如“文件不存在”。例如,软连接C指向文件D,删除D后,C就无法正常访问D的内容了。
  6. 跨文件系统支持

    • 硬链接:硬链接通常只能在同一个文件系统中创建。因为不同的文件系统有不同的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 };//同理五个数据只是偶然&#xff0c;可能会更多 //输入 for (i 0;i < SIZE;i) { printf("请输入你的第%d个值&#xff1a;",i1); scanf_s(&…...

Vue3 watch 监视属性

作用&#xff1a;监视数据的变化&#xff08;和Vue2中的watch作用一致&#xff09;特点&#xff1a;Vue3中的watch只能监视以下四种数据&#xff1a; ref定义的数据。reactive定义的数据。函数返回一个值&#xff08;getter函数&#xff09;。一个包含上述内容的数组。 我们在V…...

大数据-158 Apache Kylin 安装配置详解 集群模式启动

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

PHP商会招商项目系统一站式服务助力企业腾飞

商会招商项目系统——一站式服务&#xff0c;助力企业腾飞 &#x1f680;&#x1f4bc; &#x1f680; 开篇&#xff1a;企业成长的加速器&#xff0c;商会招商项目系统来袭 在竞争激烈的市场环境中&#xff0c;企业如何快速找到适合自己的发展路径&#xff0c;实现腾飞&…...

pnpm 和 npm

pnpm 和 npm 是 JavaScript 生态系统中常用的包管理工具&#xff0c;它们各自有不同的特性和优缺点。下面是这两者的详细比较&#xff1a; 1. 基本概念 npm (Node Package Manager)&#xff1a; 是 Node.js 的默认包管理器&#xff0c;提供安装、更新、卸载 JavaScript 包的功…...

笔试算法总结

文章目录 题目1题目2题目3题目4 题目1 使用 StringBuilder 模拟栈的行为&#xff0c;通过判断相邻2个字符是否相同&#xff0c;如果相同就进行删除 public class Main {public static String fun(String s) {if (s null || s.length() < 1) return s;StringBuilder builde…...

mybatisPlus对于pgSQL中UUID和UUID[]类型的交互

在PGSQL中&#xff0c;有的类型是UUID和UUID[]这种类型&#xff0c;在mybatis和这些类型交互的时候需要手动设置类型处理器才可以&#xff0c;这里记录一下类型处理器的设置 /*** UUID类型处理器*/ public class UUIDTypeHandler extends BaseTypeHandler<UUID> {/*** 获…...

vue3 高德地图标注(飞线,呼吸点)效果

装下这两个 npm 忘了具体命令了&#xff0c;百度一下就行 “loca”: “^1.0.1”, “amap/amap-jsapi-loader”: “^1.0.1”, <template><div id"map" style"width: 100%;height: 100%;"></div> </template><script setup> …...

程序员成长秘籍:是迈向管理巅峰,还是深耕技术架构?

专业在线打字练习平台-巧手打字通&#xff0c;只输出有价值的知识。 一 管理和架构 做技术的同学一般有两条职业发展路径&#xff0c;横向的管理路线和纵向的技术路线。管理路线对应的是管理岗&#xff0c;讲究的是排兵布阵&#xff0c;通过各种资源的优化配置发挥价值。技术路…...

xargs的参数及常用命令

1. xargs 命令简介 xargs 是一个非常有用的工具&#xff0c;它用于从标准输入&#xff08;stdin&#xff09;构建和执行命令行。xargs 可以将标准输入中以空格或换行符分隔的数据&#xff0c;转化为命令的参数传递给其他命令。 使用场景&#xff1a; 当某些命令不支持使用管…...

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() 区别 &#xff1f; wx.navigateTo() : 保留当前页面&#xff0c;跳转到应用内的某个页面。但是不能跳到 tabbar 页面 wx.redirectTo() : 关闭当前页面&#xff0c;跳转到应用内的…...

udp c语言实现组播的例子

一、组播与广播的区别 1、组播地址和广播地址是不同的概念 组播地址&#xff1a;用于将数据包发送到一组特定的接收者&#xff0c;只有加入该组播地址的设备才能接收数据。它提高了网络效率&#xff0c;因为发送者只需发送一份数据。 广播地址&#xff1a;用于将数据包发送到…...

ffmpeg面向对象——AVInputFormat与URLProtocol啥关系

《ffmpeg面向对象-rtsp拉流相关对象》和《ffmpeg面向对象——拉流协议匹配机制探索》探索过了输入格式匹配和底层协议匹配&#xff0c;且ffmpeg拉流是先是匹配输入格式——抽象为AVInputFormat类&#xff0c;然后再匹配url协议类——抽象为URLProtocol类。 它们是啥关系&#…...

【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油&#xff01;二叉搜索树 大家好&#xff0c;这里是店小二&#xff01;今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树&#xff0c;可以看作是对传统二叉搜索树的优化版本。如果你对数据结…...

中级软考软件设计师真题+模拟题+课件讲解+机考讲解模拟+笔记分享

软考真题分享 下载链接⬇️⬇️&#xff1a; 下载链接...

MySQL—视图

前言&#xff1a; 视图是一个虚拟的表&#xff0c;是基于一个或多个基本表或其他视图的查询结果集。视图本身不占据物理储存空间&#xff0c;仅仅只是一个查询的逻辑表示&#xff0c;物理上依赖于数据表的数据。 视图具有简单&#xff0c;安全&#xff0c;逻辑数据独立&#…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...