IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux软硬链接介绍 -> 正文阅读

[系统运维]Linux软硬链接介绍

linux文件系统

在这里插入图片描述

  1. ?每个文件都独自占用一个 inode,文件内容由 inode 的记录来指向;
  2. 如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块;
  3. inode 用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的 block 编号。
  4. 每个文件需要占用一个 inode。inode 中是不记录文件名的,因为文件名记录在文件所在目录的 block 中
  5. block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。例如,有一个 10KB 的文件需要存储,则会占用 3 个 block,虽然最后一个 block 不能占满,但也不能再放入其他文件的数据。这 3 个 block 有可能是连续的,也有可能是分散的

注意:每个文件都独自占用一个 inode,文件内容由 inode 的记录来指向;

如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块

软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录

硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信?

通俗说法总结起来就是

软链接 ---- 快捷方式

硬链接 ---- 像是原文件的复制品

ln命令?

用于创建文件链接,格式为????????ln [选项] 源文件 目标文件

-s:建立软链接文件。如果不加 “-s” 选项,则建立硬链接文件;
-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;

软连接

软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求)否则软链接文件会报错

创建

[root@localhost ~]# touch soft.txt
[root@localhost ~]# ln -s soft.txt soft_test.txt
[root@localhost ~]# ll -i soft.txt 
51285150 -rw-r--r--. 1 root root 0 Aug 16 21:00 soft.txt
[root@localhost ~]# ll -i soft_test.txt 
51285221 lrwxrwxrwx. 1 root root 8 Aug 16 21:01 soft_test.txt -> soft.txt

这里看出?soft.txt?和?soft_test.txt?的 inode 是不一样的

软链接的特点

  1. 首先,权限位中"l"表示这是一个软链接文件;其次,在文件的后面通过 “->” 显示出源文件的完整名字
  2. 不论是修改源文件(check),还是修改硬链接文件(check-soft),另一个文件中的数据都会发生改变
  3. 删除软链接文件,源文件不受影响。而删除原文件,软链接文件将找不到实际的数据,从而显示文件不存在
  4. 软链接会新建自己的 inode 信息和 block,只是在 block 中不存储实际文件数据,而存储的是源文件的文件名及 inode 号
  5. 软链接可以链接目录
  6. 软链接可以跨分区

我们知道红帽8的dnf是yum的升级版,其实这里的yum就是指向dnf的软连接

[root@localhost ~]# whereis yum
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz
[root@localhost ~]# ll /usr/bin/ | grep yum
lrwxrwxrwx. 1 root root           5 Sep  3  2019 yum -> dnf-3

硬链接

建立硬链接文件,目标文件没有写文件名,会和原名一致?

创建

[root@localhost ~]# touch hard.txt
[root@localhost ~]# ln hard.txt hard_test.txt
[root@localhost ~]# ll -i hard.txt 
51285229 -rw-r--r--. 2 root root 0 Aug 16 21:01 hard.txt
[root@localhost ~]# ll -i hard_test.txt 
51285229 -rw-r--r--. 2 root root 0 Aug 16 21:01 hard_test.txt

这里看出?hard.txt?和?hard_test.txt?的 inode 是一样的

硬链接的特点:

  1. 不论是修改源文件(test 文件),还是修改硬链接文件(test-hard 文件),另一个文件中的数据都会发生改变。
  2. 不论是删除源文件,还是删除硬链接文件,只要还有一个文件存在,这个文件(inode 号是 262147 的文件)都可以被访问。
  3. 硬链接不会建立新的 inode 信息,也不会更改 inode 的总数。
  4. 硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode 号是重新计算的。
  5. 硬链接不能链接目录,因为如果给目录建立硬链接,那么不仅目录本身需要重新建立,目录下所有的子文件,包括子目录中的所有子文件都需要建立硬链接,这对当前的 Linux 来讲过于复杂。

两种最主要的不同:

  1. 硬链接不会建立自己的 inode 索引和 block(数据块),而是直接指向源文件的 inode 信息和 block,所以硬链接和源文件的 inode 号是一致的
  2. 软链接会真正建立自己的 inode 索引和 block,所以软链接和源文件的 inode 号是不一致的,而且在软链接的 block 中,写的不是真正的数据,而仅仅是源文件的文件名及 inode 号
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 13:05:48  更:2021-08-18 13:07:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:12:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计