linux创建文件软连接和硬链接详解

这篇具有很好参考价值的文章主要介绍了linux创建文件软连接和硬链接详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 前言

linux系统中链接文件仔细区分可以分为软连接(符号链接)硬链接。软链接比硬链接应用更广泛,所以也可以认为linux链接文件就是指软链接文件。

本文将会在第2部分介绍创建软链接和硬链接的基本命令,在第3部分从linux文件系统的角度出发,深入分析软连接和硬链接的区别。如果只是想简单了解一下如何创建链接文件,看第2部分内容即可。

  1. 创建链接文件的基本命令

2.1 创建连接的基本命令

都是通过命令ln创建,通过参数选项-s来区分软链接和硬链接。命令如下:

ln [选项]  源文件 目标文件   # ln 是link缩写

选项参数:

  • -s 表示创建软链接,没有选项“-s”则是创建硬链接。

  • -f 强制。如果链接文件已经存在,则会删除原来的文件重新创建

下面以linux系统中编译器的gcc文件举例,展示如何如何创建软链接和硬链接。

首先,通过which命令查看gcc所在的位置:

显示结果如下:

linux创建文件软连接和硬链接详解

在/opt2/test目录下面分别创建一个gcc的软链接gcc-soft和硬链接gcc-hard:

ln -s /usr/bin/gcc /opt2/test/gcc-soft  # 软链接
ln  /usr/bin/gcc /opt2/test/gcc-hard  # 硬链接

需要注意的是,创建软链接时,源文件必须写绝对路径

cd到test目录下面,通过ls -l查看创建的软链接文件:

linux创建文件软连接和硬链接详解

从上面的图可以看到:

  • 软链接文件的属性显示为l(link file),硬链接为-。文件属性详细内容可参考文章:文件属性查看。

  • 软链接文件会显示指向/usr/bin/目录下的源文件gcc,硬链接则不会显示。

最后可以简单测试一下创建的链接文件:

可以看到软链接和硬链接文件都可以执行成功,与源文件命令gcc --version效果一样,说明链接文件创建成功。

linux创建文件软连接和硬链接详解

2.2 链接文件的删除

无论时软链接还是硬链接,删除都很简单,和普通文件一样,都是使用rm命令删除。例如:

rm -f gcc-soft # 删除软链接文件

这里需要注意的时:

  • 删除软链接或硬链接都不会影响到原来的文件

  • 如果删除原来的文件,软链接就会找不到源文件出错,硬链接依然可以。

  1. 软链接和硬链接的区别

3.1 linux文件系统

简单来讲linux ext4文件系统下,每个文件(包含目录)由inode、block两个部分组成。每个inode和block都有编号,根据编号都可以找到相关的inode或者block,也就可以获取文件的内容了。

  • inode,一般占内存较小,默认为128byte,用来记录文件的属性(rwx)、拥有者以及对应的block号。

  • block,占内存较大,默认为4kb。用来保存文件的真正内容

需要对block中保留的真正内容做一个说明,对于非目录文件来说,真正内容就是具体的数据、文本等;对于目录文件来说,真正内容就是目录下面子目录、文件的名称和inode号。

下面以test目录为例,test目录下面有个hello.txt文本文件,里面内容是hello world!,还有一个子目录subdir,子目录里面包含一个文件data.dat,里面有保存了一些数据。test目录结构如下:

linux创建文件软连接和硬链接详解

那么test目录下面的文件的inode和block关系示意图如下:

说明:

  • 黑色数字代表inode号,红色数字代表block号。号码是随意取的,这里注意其中的对应关系即可

  • block黄色背景的是目录的block,白色背景的文件的block

linux创建文件软连接和硬链接详解

如果要查找data.dat文件,查找顺序如下:

首先根据test目录的inode节点中的block号1000找到block1000 -- > 根据block1000中得知subdir的inode号2 -- > inode2中保存subdir block号为1002 --> block1002中data.dat inode号为3 --> inode3中保存的data.dat的block号1003 --> block1003中存储data.data的具体内容。

最后得到inode3就得到了data.dat的权限属性拥有者,而block1003中保存了实际内容。

3.2 软链接与硬链接

考虑给在tmp1目录下面给hello.txt增加一个软链接文件hello-soft.txt, 在tmp2目录下面给hello.txt增加一个硬链接文件hello-hard.txt.

从下的示意图可以看到:

  • 增加软链接,会增加一个inode号2和对应的block1002,block1002中记录了源文件hello.txt的inode号1,故最终可以链接到源文件

  • 增加硬链接,实际上并没有增加inode和block。只是在原来天tmp2目录的block中增加了一个inode号记录,好像hello.txt也是tmp2目录下的文件一样。

linux创建文件软连接和硬链接详解

参考:

http://c.biancheng.net/view/740.html文章来源地址https://www.toymoban.com/news/detail-498611.html

到了这里,关于linux创建文件软连接和硬链接详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 操作系统-区分文件共享的两种方式:软链接和硬链接

    软链接与硬链接是用来干什么的呢? 为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。 由于linux下的

    2023年04月12日
    浏览(46)
  • 408操作系统-区分文件共享的两种方式:软链接和硬链接

    软链接与硬链接是用来干什么的呢? 为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。 由于linux下的

    2023年04月17日
    浏览(62)
  • linux之Ubuntu系列 find 、 ln 、 tar、apt 指令 软链接和硬链接 snap

    查找文件 find 命令 功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件 find [path] -name “.txt” 记得要加 “ ” 支持通配符 ,正则表达式 包括子目录 ls 不包括 子目录 如果省略路径,表示 在当前路径下,搜索 find 按大小查找文件 软链接 软链接 跟windows 系统中的

    2024年02月16日
    浏览(38)
  • linux之Ubuntu系列(四)用户管理 用户和权限 chmod 超级用户root, R、W、X、T、S 软链接和硬链接

    r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。 w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。 x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该

    2024年02月16日
    浏览(59)
  • 【看表情包学Linux】软硬链接 | 软连接数 | 创建软硬链接 | 动静态库 | 生成静态库 | 生成动态库

       🤣  爆笑 教程  👉 《看表情包学Linux》👈   猛戳订阅     🔥 💭 写在前面: 上一章我们讲解了 inode,为文件系统收了尾,这几章我们充分地讲解完了文件系统的知识点,现在我们开始开始学习软硬链接了。如果没有文件系统的铺垫,想直接理解软硬链接难免有些困

    2024年02月14日
    浏览(47)
  • linux之Ubuntu系列(四)用户管理 用户和权限 chmod 超级用户root, R、W、X、T、S 软链接和硬链接 shell

    r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。 w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。 x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该

    2024年02月16日
    浏览(56)
  • 【Linux】什么是文件系统及inode?如何创建软硬链接?软硬链接有什么作用?

    了解一下文件系统: Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被 划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。例如mke2fs的-b选项可以设 定block大小为1024、2048或4096字节。而

    2024年02月11日
    浏览(51)
  • 【Linux】-文件系统的详解以及软硬链接

    💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! 今天我们开始讲解文件系统,上一篇我们通过文件操作,

    2024年02月04日
    浏览(40)
  • 操作系统—软链接和硬链接的介绍、实现、区别

    一、前言  有时候我们希望给某个文件取个别名,那么在 Linux 中可以通过 硬链接  和 软链接 的方式来实现,它们都是比较特殊的文件,但是实现方式也是不相同的。    首先简单介绍一下,Linux文件系统的 索引节点(inode)  索引节点,也就是  inode ,用来记录文件的元信息

    2024年02月16日
    浏览(40)
  • 【Linux】基础 IO(文件系统 & inode & 软硬链接)-- 详解

    1、前言 我们一直都在说打开的文件,磁盘中包含了上百万个文件,肯定不可能都是以打开的方式存在。其实文件包含打开的文件和普通的未打开的文件,下面重点谈谈未打开的文件。 我们知道打开的文件是通过操作系统被进程打开,一旦打开,操作系统就要维护多个文件,

    2024年03月21日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包