硬链接与符号链接

news2024/11/29 2:31:36

硬链接与符号链接(Hard Link vs Symbolic Link)

两者对于 Linux 操作系统的异同、优缺点。

什么是链接?

在最一般的意义上,链接是两个对象之间的连接。更具体地说是在计算方面;根据牛津定义,链接是与代码或指令的连接,它将程序的一部分或列表中的元素连接到另一部分。在这种情况下,它是来自一个位置的文件或目录的连接,并且能够从另一个位置访问它。为此,必须从原始文件创建链接文件 本博客的其余部分是关于通过硬链接或符号(软)链接创建链接文件的两种方法的比较。

共同点和不同点:

首先,它们都是从另一个位置引用原始文件的方法,并且它们实际上都访问了原始文件,实现了链接的目的。此外,如果链接文件被移动、重命名或删除,原始文件也不会发生任何变化。
主要区别在于,一个指向文件在硬盘中的物理位置,另一个是快捷方式,即文件当前目录路径的副本。正如将要解释的那样,这将释放出两者的主要优点和缺点。
在这里插入图片描述

硬链接

什么是硬链接(Hard Link)

第一种方法是使用硬链接。这种建立连接的方式是通过所谓的索引节点,它本质上是对文件物理位置的引用。这意味着链接文件与原始文件具有相同的 indode 值,使其成为一种“原始文件的移动副本”。
硬链接的属性是链接文件与原始文件具有相同的大小,因为它是对原始文件相同位置的引用,因此不仅是对它的引用,而且具有相同的属性。
由于它是对文件物理位置的引用,而不仅仅是对其当前位置的引用,因此即使原始文件被移动、重命名或删除,该链接仍将可用并且不会受到影响。换句话说,如果发生任何这种情况,链接文件仍将访问原始文件中的信息。链接文件仍然有效。
Hard Link 的主要缺点是不能为目录创建,也不能为不同文件系统上的文件创建。
命令:

$ ln [original filename] [link name]
$ ln [原始文件名] [链接名]

什么是符号链接(Symbolic Links)

符号链接或软链接是一个字符串,它是原始文件的路径名,换句话说,就是我们在 Windows 操作系统中所知道的快捷方式。这种链接引用原始文件的虚拟或路径位置,而不是物理位置。
特性
软(符号)链接中的文件名实质上是原始文件的路径名,因此该链接的大小只是文件链接名的长度。它不是原始文件的大小。
优点
正如我们刚刚看到的,主要优点是它不会占用太多空间,因为它的尺寸会更小。
另一个优点是它可以为目录和不同的文件系统创建。
缺点
一些真正的大缺点是,如果文件被重命名、移动或删除,链接文件将变得毫无用处,成为一个挂起的链接。

$ ln -s [original filename] [link name]
$ ln -s [原始文件名] [链接名]

reference

@misc{BibEntry2023Jun,
title = {{Hard Link vs Symbolic Link { ∣ \vert } LinkedIn — xn–jhqx7l99oca507xzode90dea { ∣ \vert }xn–dj1ay55b}},
year = {2023},
month = jun,
note = {[Online; accessed 3. Jun. 2023]},
url = {https://www.linkedin.com/pulse/hard-link-vs-symbolic-mateo-garcia}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【读书笔记】《平凡的世界》- 路遥

他又进一步想,郝红梅抛开他而和顾养民相好,也完全是正常的啊!他自己在哪方面都无法和顾养民比较。男女相好,这是两厢情愿的事,而怎能像乡俗话说的“剃头担子一头热”呢? 青春激流打起的第一个浪头在内心渐渐…

Eclipse不用删除之前的项目也可以多次导入相同的项目,操作十分简单!!

问题引入 当我们在学习时,常常需要多次导入网上的同一个案例进行查看效果或者导入自己的项目、用于进行代码测试,原来的项目要继续保留,作为备份,防止代码测试对代码修改过火,一去不返。但当我们导入在Eclipse项目管理…

JavaScript蓝桥杯------学海无涯

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 小蓝最近一直在云课平台学习,为了更好的督促自己,于是将每天的学习时间都记录了下来,但是如何更加直观的显示学习时间让小蓝很是苦恼。本题需要你使用 ECharts 帮助小蓝实现统计学习…

【C/C++】基础知识之动态申请内存空间new-delete

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

对Java远程热部署实践学习和分析

目录 一、热部署现状和必要性分析 &#xff08;一&#xff09;热部署定义和现状分析 &#xff08;二&#xff09;技术实现难度分析 &#xff08;三&#xff09;其必要性分析 二、走进美团Java远程热部署实践 &#xff08;一&#xff09;Sonic分析 &#xff08;二&#x…

Delphi11的多线程ⓞ,附送图片处理代码

Delphi11的多线程ⓞ OLD Coder , 习惯使用Pascal 接下来准备启用多线程&#xff0c;毕竟硬件多核&#xff0c;Timer不太爽了&#xff08;曾经的桌面&#xff0c;都是Timer——理解为“片”&#xff09; 突然想写写&#xff0c;不知道还有多少D兄弟们在。 从源码开始 用D11之…

第1节:vue cesium 概述(含网站地址+视频)

在开始介绍vue cesium之前&#xff0c;我们先聊聊cesiumjs&#xff0c;如果你对这块内容比较熟悉&#xff0c;可以直接跳过这节内容。 cesiumJS 简介 官方网址&#xff1a;https://cesium.com/platform/cesiumjs/ CesiumJS 是一个开源 JavaScript 库&#xff0c;主要用于基于…

Linux之理解文件系统——文件的管理

文章目录 前言一、磁盘1.磁盘的物理结构2.磁盘的存储结构3.磁盘的逻辑结构 二、文件系统与inode1.文件在磁盘中是如何存储的&#xff1f;2.对文件进行操作 三、软硬链接1.软链接创建软链接&#xff1a;inode删除软链接&#xff1a;软链接的作用&#xff1a; 2.硬链接创建硬链接…

chatgpt赋能python:Python另存为对话框:如何在Python中创建一个另存为对话框

Python 另存为对话框&#xff1a;如何在Python中创建一个另存为对话框 如果你是一名 Python 开发者&#xff0c;你可能会常常需要为你的应用程序添加一个另存为对话框。这个对话框使用户可以将他们的数据保存为一个新的文件&#xff0c;而不是覆盖原始文件。然而&#xff0c;很…

【JavaEE】Tomcat-Servelet第一个helloworld程序

Tomcat & Servelet第一个程序helloworld&#xff01; 文章目录 JavaEE & Tomcat & 第一个Servelet程序1. HTTP服务器 - Tomcat1.1 Tomcat的目录结构&#xff1a;1.2 启动Tomcat1.3 Tomcat的优点 2. Servelet框架2.1 创建Maven项目2.2 引入依赖2.3 创建目录2.4 写代…

【Java】wait和notify方法

wait方法wait()和join()的区别wait()和sleep()的区别notify()和notifyAll()实例 wait()和notify()方法都是Object类中的方法。由于每个类都会继承Object类&#xff0c;所以每个对象中都会包含这些方法。 wait方法 wait() 是让线程等待一段时间&#xff0c;死等。对应到线程的…

Linux账号管理与ACL权限设定(一)

Linux的账号与群组 Linux系统中&#xff0c;关于账号和群组&#xff0c;实际记录的是UID和GID的数字&#xff1b; 关于账号有两个非常重要的文件&#xff1a;/etc/passwd 和 /etc/shadow &#xff1b; /etc/passwd 文件结构&#xff1a; 账号名称&#xff1a;密码&#xff…

chatgpt赋能python:Python中另起一行输出的方法

Python中另起一行输出的方法 在Python编程中&#xff0c;我们需要经常输出内容到控制台或者文件中。而有时候&#xff0c;我们可能需要将输出的内容另起一行来符合排版或格式要求。这篇文章将介绍Python中另起一行输出的方法。 使用print函数 Python中最简单的输出方法就是使…

阵列信号处理笔记(1):预备知识、阵列流形、波数-频率响应

阵列信号处理笔记&#xff08;1&#xff09; 文章目录 阵列信号处理笔记&#xff08;1&#xff09;预备知识从延时到阵列流形矢量频率波数响应 预备知识 如图所示的球坐标系中&#xff0c;任意一阵元的位置可以用 ( r , ϕ , θ ) (r,\phi,\theta) (r,ϕ,θ)唯一表示&#xff…

前端045_单点登录SSO_实现流程

单点登录SSO_实现流程 1、背景2、基于同域下 Cookie 实现 SSO1、背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。 但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要…

Linux命令(28)之locate

Linux命令之locate 1.locate介绍 linux命令locate用于查找文件所在位置&#xff0c;与which、whereis命令类似&#xff0c;locate命令将会在预先建立好的档案数据库中查询文件。 locate档案数据库路径&#xff1a;/var/lib/mlocate locate档案数据库名称&#xff1a;mlocat…

SpringBoot之Transactional事务

目录 一、事务管理方式二、事务提交方式三、事务隔离级别四、事务传播行为1、Propagation.REQUIRED2、Propagation.SUPPORTS3、Propagation.MANDATORY4、Propagation.REQUIRES_NEW5、Propagation.NOT_SUPPORTED6、Propagation.NEVER7、Propagation.NESTED 五、事务回滚六、只读…

前后端分离项目之登录页面(前后端请求、响应和连接数据库)

目录 一、前端登录发起请求 二、后端请求接收 三、连接数据库 四、后端响应 五、前端处理 六、在前端验证用户是否登录 七、web会话跟踪 八、请求拦截器和响应拦截器 本文Vue-cli前端项目基于文章&#xff1a; Vue-cli搭建项目(包含Node.js安装和ElementUI安装)_小俱的…

2. requests.get()函数访问网页(小白入门)

2. requests.get()函数访问网页(小白入门) 文章目录 2. requests.get()函数访问网页(小白入门)1. 人工访问网页2. 爬虫第一步&#xff1a;发起网络请求3. requests库的安装4. requests.get()函数&#xff1a;发送网络请求5. 代码解析1. 导入库的语法2. 指定网址3. 发送请求4. 输…

chatgpt赋能python:Python取消撤销——让你的代码更加高效

Python取消撤销——让你的代码更加高效 在Python编程的过程中&#xff0c;经常会出现需要撤销操作的场景。但是&#xff0c;在一些复杂的代码编辑器中&#xff0c;常规的CtrlZ撤销操作可能无法满足你对代码精度的要求。为此&#xff0c;Python取消撤销就应运而生。 Python取消…