浅谈Linux里的软硬链接

浅谈Linux里的软硬链接

本机环境

  • VMware WorkStation 17
  • Linux发行版: CentOS7
  • 执行权限:root

软链接

Linux下的软链接 其实 和Windows下的快捷方式是一样的。

拥有这样几个特性:

  • Linux的软链接创建后,删除软链接对源文件没有任何影响。
  • Linux的软链接可以创建多个,且都可以指向同一个源文件。
  • Linux的源文件如果删除,软链接即可失效。
  • Linux的软链接也可以链接文件夹。

软链接创建命令如下:

ln -s [源文件绝对路径] [软链接绝对路径]    # -s  是 soft 的意思  '柔软'

举例演示

# 我们在/opt/目录下创建一个source_demo.txt 文本文件,并写入一些测试内容
$ cd /opt
$ touch source_demo.txt
$ vim source_demo.txt
-----------------------------
这是源文件的内容,测试用
-----------------------------# 然后我们在/tmp目录下来创建软链接指向这个source_demo文件
$ cd /tmp
$ ln -s /opt/source_demo.txt /tmp/lns_demo #创建连接文件 lns_demo连接
$ cat ln_demo # 查看这个文件内容,可以看到它输出了源文件的内容
$ ls -l # 查看创建的详细信息# 然后,我们可以再创建一个指向/opt/source_demo.txt的的软链接,再或者删除软链接。
$ ln -s /opt/source_demo.txt /tmp/lns_demo1
$ rm -rf /tmp/lns_demo
$ rm -rf /tmp/lns_demo1
# 可以知道并不会对源文件产生任何影响#我们直接删除源文件,链接文件就会失效
$ rm -rf /opt/source_demo.txt
# 再去查看链接文件,就会发现已经失效
$ cat /tmp/lns_demo

说明:我们可以使用 readlink [软链接路径] 来查看软链接到底它存放了什么?

$ readlink /tmp/lns_demo
输出: /opt/source_demo 
# 可以知道,软链接自己存的东西就是源文件的路径而已。

硬链接

介绍硬链接之前,需要搞清楚inode 是什么

  • inode

    操作系统中专门用于管理文件的软件被称之为 【文件系统】

    ​ ==注:==Linux里的文件系统类型主要有:FAT16 FAT32 NTFS XFS EXT3 EXT4

    文件系统里存储了诸多文件,而每个文件都有自己的元数据(包括,文件创建时间、修改时间、文件大小、属主信息等)

    这些数据保存在磁盘上的块(block),每个块占8个扇区,总计4kb数据。

    : block 是一连串的扇区

    而inode 就是类似这个文件的身份证号一样。中文名称叫做:索引节点

  • 查看inode 号

    ls -li filename.txt   # -i  inode
    # 33582193 -rw-r--r-- 1 root root 31 4月  18 22:49 filename.txt
    

通过inode 号码,就可以找到文件数据在磁盘上的位置,也就是block的位置。

  • 硬链接

    文件名和inode 是一对一的关系。

    创建多个硬链接,他的inode号是一样的。

    目录文件夹不支持硬链接

    不得跨文件系统创建硬链接

    ls -l 可以查看文件系统的硬链接数量

    -rw-r--r--  1 root root  31 418 22:49 filename.txt  # 1个硬链接
    

    创建硬链接方式

    ln [源文件绝对路径]  [硬链接文件绝对路径]
    ln /opt/source_demo /tmp/demo2
    

    特点:

    ​ 源文件删除不影响硬链接。

    ​ 如果把源文件和所有的硬链接都删除,那么文件数据就会丢失

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

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

相关文章

pytorch-手写数字识别之全连接层实现

目录 1. 背景2. nn.Linear线性层2. 实现MLP网络3. train4. 完整代码 1. 背景 上一篇https://blog.csdn.net/wyw0000/article/details/137622977?spm1001.2014.3001.5502中实现手撸代码的方式实现了手写数字识别,本文将使用pytorch的API实现。 2. nn.Linear线性层…

开发一个农场小游戏需要多少钱

开发一个农场小游戏的费用因多个因素而异,包括但不限于游戏的规模、复杂性、功能需求、设计复杂度、开发团队的规模和经验,以及项目的时间周期等。因此,无法给出确切的费用数字。 具体来说,游戏的复杂程度和包含的功能特性数量会直…

企业文档知识库建设,数据安全如何保障?

随着现代市场经济的高速发展,企业的竞争优势越来越多体现在人才和科技的优势。而随着员工流动率的提升,随之流失的则是员工积累多年的宝贵工作经验,如果缺乏有效的内部知识库的建设和管理,企业的竞争优势将难以维系。「企业网盘」…

Claude和chatgpt的区别

ChatGPT是OpenAI开发的人工智能的聊天机器人,它可以生成文章、代码并执行各种任务。是Open AI发布的第一款大语言模型,GPT4效果相比chatgpt大幅提升。尤其是最新版的模型,OpenAI几天前刚刚发布的GPT-4-Turbo-2024-04-09版本,大幅超…

架构设计-流程引擎的架构设计

1、什么是流程引擎 流程引擎是一个底层支撑平台,是为提供流程处理而开发设计的。流程引擎和流程应用,以及应用程序的关系如下图所示。 常见的支撑场景有:Workflow、BPM、流程编排等。本次分享,主要从 BPM 流程引擎切入&#xff0…

【前端】3. CSS【万字长文】

CSS 是什么 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. CSS 就是 “东方四大邪术” 之化妆术. 基本语法规范 选择器 {一条/N条声明} 选择器决定针对谁修改 (找谁)声明决…

钉钉直播回放怎么下载到本地

钉钉直播回放如何下载到本地,本文就给大家解密如何下载到本地 工具我已经给大家打包好了 钉钉直播回放下载软件链接:https://pan.baidu.com/s/1_4NZLfENDxswI2ANsQVvpw?pwd1234 提取码:1234 --来自百度网盘超级会员V10的分享 1.首先解压好我给大家…

【Qt】Qt Hello World 程序

文章目录 1、Qt Hello World 程序1.1 使用按钮实现1.1.1 使用可视化方式实现 1.1.2 纯代码方式实现 label创建堆(内存泄漏)或者栈问题Qt基础类(Qstring、Qvector、Qlist)乱码问题零散知识 1、Qt Hello World 程序 1.1 使用按钮实…

Swin Transformer 浅析

Swin Transformer 浅析 文章目录 Swin Transformer 浅析引言Swin Transformer 的网络结构W-MSA 窗口多头注意力机制SW-MSA 滑动窗口多头注意力机制Patch Merging 图块合并 引言 因为ViT无法实现CNN中的层次化构建以及局部信息,由此微软团队提出了Swin Transformer来…

C语言(二维数组)

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

15.7 2011年42题真题讲解

2,4,6,8,11,13,15,17,19,20 可以推出题目的一个隐含条件:偶数个元素的中位数是靠前的那一个 应试技巧:如果实在想不出高效的算法,那…

基于springboot+vue+Mysql的房产销售平台

开发语言:Java框架:springcloudJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#xff1a…

【详细讲解CentOS常用的命令】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

SQLite FTS5 扩展(三十)

返回:SQLite—系列文章目录 上一篇:SQLite的知名用户(二十九) 下一篇:SQLite—系列文章目录 1. FTS5概述 FTS5 是一个 SQLite 虚拟表模块,它为数据库应用程序提供全文搜索功能。在最基本的形式中, 全文搜索引擎允许用户有…

Dinov2 + Faiss 图片检索

MetaAI 通过开源 DINOv2,在计算机视觉领域取得了一个显着的里程碑,这是一个在包含1.42 亿张图像的令人印象深刻的数据集上训练的模型。产生适用于图像级视觉任务(图像分类、实例检索、视频理解)以及像素级视觉任务(深度…

【leetcode面试经典150题】57. 环形链表(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

vivado 使用 JTAG-to-AXI Master 调试核进行硬件系统通信

使用 JTAG-to-AXI Master 调试核进行硬件系统通信 JTAG-to-AXI Master 调试核为可自定义核 , 可在运行时生成 AXI 传输事务并驱动 FPGA 内部的 AXI 信号。该核支持所 有存储器映射型 AXI 接口和 AXI4-Lite 接口 , 并且可支持位宽为 32 或 64 …

免费的数据恢复软件有哪些?推荐10款免费的数据恢复软件!

通过使用功能强大的免费和最好的数据恢复软件,您可以取消删除重要文件和文档。丢失文件是每个人在许多情况下面临的常见问题,这些数据恢复程序可以充当完美的救星。 我们编制了 2024年的最佳软件列表。这些工具易于使用,您可以通过如何在 PC…

Spring Boot 目前还是最先进的吗?

当谈到现代Java开发框架时,Spring Boot一直处于领先地位。它目前不仅是最先进的,而且在Java生态系统中拥有着巨大的影响力。 1. 什么是Spring Boot? Spring Boot是由Spring团队开发的开源框架,旨在简化基于Spring的应用程序的开…

接收区块链的CCF会议--ICSOC 2024 截止7.24

ICSOC是CCF B类会议(软件工程/系统软件/程序设计语言) 2023年长文短文录用率22% Focus Area 4: Emerging Technologies Quantum Service Computing Digital Twins 3D Printing/additive Manufacturing Techniques Blockchain Robotic Process Autom…