返回顶部
首页 > 资讯 > 操作系统 >Linux软链接和硬链接的区别是什么
  • 569
分享到

Linux软链接和硬链接的区别是什么

2023-06-05 14:06:06 569人浏览 独家记忆
摘要

本篇内容主要讲解“linux软链接和硬链接的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux软链接和硬链接的区别是什么”吧!导读我们知道文件都有文件名与数据,这在 L

本篇内容主要讲解“linux软链接和硬链接的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux软链接和硬链接的区别是什么”吧!

导读我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。而有一种方法可以快速的寻找到数据元,那就是软硬链接,让我们一起来看一下吧。

什么是链接?

链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。

它是用来干什么的?

你可以将链接简单地理解为 windows 中常见的快捷方式(或是 OS X 中的替身),Linux 中常用它来解决一些库版本的问题,通常也会将一些目录层次较深的文件链接到一个更易访问的目录中。在这些用途上,我们通常会使用到软链接(也称符号链接)。

内容

软链接和硬链接的区别是?
下面我们进入正题,来探讨一下软硬两种链接到底有什么区别?

首先,从使用的角度讲,两者没有任何区别,都与正常的文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。

那区别在哪呢?在底层的原理上。

为了解释清楚,我们首先在自己的一个工作目录下创建一个文件,然后对这个文件进行链接的创建:

$ touch myfile && echo "This is a plain text file." > myfile$ cat myfileThis is a plain text file.

现在我们创建了一个普通地不能再普通的文件了。然后我们对它创建一个硬链接,并查看一下当前目录:

$ ln myfile hard$ ls -li25869085 -rw-r--r-- 2 unixzii staff 27 7 8 17:39 hard25869085 -rw-r--r-- 2 unixzii staff 27 7 8 17:39 myfile

在 ls 结果的最左边一列,是文件的 inode 值,你可以简单把它想成 C 语言中的指针。它指向了物理硬盘的一个区块,事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失。

你也看到了,这两个文件就如同一个文件一样,inode 值相同,都指向同一个区块。

然后我们修改一下刚才创建的 hard 链接文件:

$ echo "New line" >> hard$ cat myfileThis is a plain text file.New line

可以看到,这两个文件果真就是一个文件。 下面我们看看软链接(也就是符号链接)和它有什么区别。

$ ln -s myfile soft$ ls -li25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 hard25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 myfile25869216 lrwxr-xr-x 1 unixzii staff 6 7 8 17:47 soft -> myfile

诶,你会发现,这个软链接的 inode 竟然不一样啊,并且它的文件属性上也有一个 l 的 flag,这就说明它与之前我们创建的两个文件根本不是一个类型。

下面我们试着删除 myfile 文件,然后分别输出软硬链接的文件内容:

$ rm myfile$ cat hardThis is a plain text file.New line$ cat softcat: soft: No such file or directory

之前的硬链接没有丝毫地影响,因为它 inode 所指向的区块由于有一个硬链接在指向它,所以这个区块仍然有效,并且可以访问到。 然而软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径,然而这个文件已经被删除了,所以自然就会显示无法找到该文件了。

为验证这一猜想,我们再向这个软链接写点东西:

$ echo "Something" >> soft$ lshard myfile soft

可以看到,刚才删除的 myfile 文件竟然又出现了!这就说明,当我们写入访问软链接时,系统自动将其路径替换为其所代表的绝对路径,并直接访问那个路径了。

到此,相信大家对“Linux软链接和硬链接的区别是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Linux软链接和硬链接的区别是什么

本文链接: https://lsjlt.com/news/243421.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux软链接和硬链接的区别是什么
    本篇内容主要讲解“Linux软链接和硬链接的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux软链接和硬链接的区别是什么”吧!导读我们知道文件都有文件名与数据,这在 L...
    99+
    2023-06-05
  • linux硬链接和软链接的区别
    本篇内容介绍了“linux硬链接和软链接的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简而言之: 软链接相当于windows中的快捷方...
    99+
    2023-06-13
  • Linux中软链接和硬链接有什么区别
    这篇文章将为大家详细讲解有关Linux中软链接和硬链接有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是软链接符号链接Symbolic Link(symlink),又称软链接So...
    99+
    2023-06-16
  • Linux系统中软链接和硬链接的区别是什么
    Linux系统中软链接和硬链接的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分...
    99+
    2023-06-05
  • linux的软连接和硬链接有什么区别
    Linux中的软连接(Symbolic Link)和硬链接(Hard Link)是两种不同类型的链接方式,它们有以下区别:1. 文件...
    99+
    2023-10-12
    linux
  • linux中软链接和硬链接有没有区别
    小编给大家分享一下linux中软链接和硬链接有没有区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!linux中软链接和硬链接有区别,区别为:1、软链接以路径的形式存在,硬链接以文件副本的形式存在;2、软链接可以跨文件系统...
    99+
    2023-06-25
  • Linux硬链接和软链接的概念是什么
    这篇文章主要介绍“Linux硬链接和软链接的概念是什么”,在日常操作中,相信很多人在Linux硬链接和软链接的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux硬链接和软链接的概念是什么”的疑...
    99+
    2023-06-28
  • 区分Linux硬链接与软链接
    在Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link);另一种则是通过文件系统的...
    99+
    2022-06-03
    Linux 硬链接 Linux 软链接
  • Linux硬链接和软链接用来做什么
    本篇内容介绍了“Linux硬链接和软链接用来做什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux链接分两种,一种被称为硬链接(Ha...
    99+
    2023-06-27
  • linux系统中软连接和硬链接有什么区别
    这篇文章主要介绍了linux系统中软连接和硬链接有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我自己做的图片大家参考下:软连接硬链接的区别:硬连接指通过索引节点来进...
    99+
    2023-06-13
  • Linux下软链接和硬链接的创建、删除、区别详解
    在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存里,从而实现对文件的快速访问。 链接是一种在...
    99+
    2022-06-03
    Inode Linux 快捷方式 文件指针 文件系统 文件路径 硬链接 符号链接 软链接
  • Linux系统如何辨别软链接和硬链接
    这篇文章主要介绍“Linux系统如何辨别软链接和硬链接”,在日常操作中,相信很多人在Linux系统如何辨别软链接和硬链接问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统如何辨别软链接和硬链接”的疑...
    99+
    2023-06-13
  • linux的软连接和硬链接的作用是什么
    软链接和硬链接都是用于创建文件或目录的引用。它们的作用是:1. 软链接(Symbolic Link):也被称为符号链接或symlin...
    99+
    2023-10-12
    linux
  • Linux中软连接和硬链接是什么意思
    这篇文章主要为大家展示了“Linux中软连接和硬链接是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中软连接和硬链接是什么意思”这篇文章吧。 简介我们现代的操作系统需...
    99+
    2023-06-16
  • linux硬链接和软链接的示例分析
    这篇文章主要介绍linux硬链接和软链接的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言最近前端包管理器pnpm真的是太火了,大量的文章分析了pnpm的原理。了解之后,发现pnpm整个架构都是基于硬链接和...
    99+
    2023-06-29
  • Linux下软链接和硬链接的示例分析
    这篇文章主要介绍了Linux下软链接和硬链接的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard L...
    99+
    2023-06-16
  • 怎么理解Linux的硬链接与软链接
    这篇“怎么理解Linux的硬链接与软链接”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么理解Linux的硬链接与软链接”文...
    99+
    2023-06-16
  • linux中符号链接与硬链接的区别有哪些
    这篇“linux中符号链接与硬链接的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中符号链接与硬链接的区...
    99+
    2023-06-30
  • linux硬链接不能链接目录的原因是什么
    今天小编给大家分享一下linux硬链接不能链接目录的原因是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。原因:引入了对目...
    99+
    2023-07-04
  • linux怎么创建软硬链接
    在Linux系统中,可以使用`ln`命令创建软链接和硬链接。1. 创建软链接:```ln -s 源文件 链接文件```源文件可以是文...
    99+
    2023-10-12
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作