Linux 运维之硬链接与软链接详解

  了解这个的时候不如先知道下文件吧.

    我们知道文件都有文件名与数据,但是呢这个在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。

    用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;

    而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。

    在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名是为了方便人们的记忆和使用     

    系统或程序通过 inode 号寻找正确的文件数据块,所以呢文件读取过程则为先读取inode,然后找block数据。

    而linux 引入的两种链接:硬链接与软链接,为系统解决了文件的共享使用,同时提供隐藏文件路径,节省存储,同时增加了文件的安全。

    你可能看了这么久还是一脸懵逼的,不要着急看完实例,你就懂了。

一,硬链接

    就是一个文件的一个或多个文件名 -->这么简单的回答是不是又懵逼了呢??

    通俗的讲硬链接就是一个你的复制人,你在的时候你干什么他也干什么,但是你不在了,他是不会消失,就不受你约束了。

    可是我还要讲一个呢---------ln命令  ---> ln [选项]... [文件]...

    你看着文章只需要掌握两个

              ln  目标文件   创一个个性化名字   ---->硬链接

              ln  -s   目标文件   创一个个性化名字------>软链接       

    ln  就是创建链接的     ----->然后没了。

    

    ln  学会了现在正式开讲  硬链接

    我们通过硬链接的特性来去了解他吧

   1,文件具有相同的inode及data  block,

     

      我们先创建一个文件,现在我要给他添加硬链接,

     

     创建好了

     

     是不是创建好了??然后用ls -li 查看下看到inode一样的

     这就是inode一样。看到这里肯定有个模糊的理解了吧,看张图:

    

     2,硬链接是不会占用空间的

        这个你知道就行,记住不占用磁盘空间

     3,只能对已存在的文件进行创建

       创建的时候源文件要在,你不可能凭空出来个链接文件吧??

     4,不能对目录进行创建,只可对文件创建  

       对目录创建是软连接的事,硬链接只会创建文件链接哦  

     5,无论哪个文件输入东西另一个也会有

        

        这就是复制人的强大

      6,删除一个文件另一个是不受影响的

        我们删除源文件看看:

          

       不受影响,依旧能写能读

      注意:目录创建是不可以的哦

        

      

       也不能交叉文件系统

         我是这样理解一个root 系统 一个dev  里面东西不一样就不行了   

二,软连接

    来完成硬链接不能完成的事:

    软链接呢就像你的投影,为啥这样说呢?你有的他有,你不在了他就变木头

    看下软链接的读取流程  

   创建一个软链接先:

    

    看到错误没呢?

    创建的时候,要创建的内容不能带/ 所以目录名不能和文件名重合。

    软链接呢可以做硬链接的事,即可以文件,也可以目录哦

  特性:  1,软链接有自己的文件属性及权限,inode不同等

      不知道大家有没有发现上面图片,已经描述很详细了

       文件属性不同呢

       2, 可对不存在的文件或目录创建软链接

        这个是不是强大多了?不过你创建好了,源文件不再,创建的是没用的呢

          

          我们要怎么让他有用呢??

        答案是创建源文件

    

      看不闪了 活了 ,,,

        同样可以推出,,假如删除源文件,链接文件是不能用的,无效

      

     

     3,文件内容共享,无论哪里有新文件还是内容,另一边都会有

      

    

    4,软连接是可以对文件或者目录创建的

      这个可以理解吧

    5,创建软链接时,链接计数 i_nlink 不会增加

    

    不管你创建多少都不会增加的,硬链接却会有哦我们看看:

    

     6, 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

  

     好了结束了 ,下一篇博客不见不散! 

原文地址:https://www.cnblogs.com/kingle-study/p/9342001.html

时间: 2024-10-04 13:29:26

Linux 运维之硬链接与软链接详解的相关文章

linux软连接硬链接操作与详解

1.Linux硬链接和软连接  ln命令,创建连接 .命令参数: 必要参数: -b 删除,覆盖以前建立的链接 -d 允许超级用户制作目录的硬链接 -f 强制执行 -i 交互模式,文件存在则提示用户是否覆盖 -s 软链接(符号链接) -v 显示详细的处理过程     Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]    硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘

运维自动化之 Cobbler 系统安装使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

Ansible自动化运维的安装及常用模块详解

Ansible作为今年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误.Ansible通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个.更为重要的是,它操作简单,但提供的功能又非常丰富,在运维领域,几乎可以做任何事..Ansible自2012年发布以来,很快在全球流行,其特点如下: 1.Ansible基于Python开发,运维工程师对其二次开发相对比较容易2.Ansible丰富的内置模块,几乎可以满足一切要求3

运维自动化之Cobbler系统安装使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

运维自动化之锋芒毕露puppet 基础详解。

puppet简介 Puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期:供应(provisioning).配置(configuration).联动(orchestration).及报告(reporting). 基于puppet,可实现目标管理的幂等性.自动化重复任务.快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模等. 基于ruby语言开发,在版本(2.7.0)以后遵循(Apache2.0 license). 基本工作模型 Master

Ansible自动化运维学习之五:Ansible配置文件详解与调优

一.常用参数详解本文对 https://blog.51cto.com/8355320/2471354 的参数配置进行了扩充.Ansible默认配置文件为/etc/ansible/ansible.cfg,配置文件中可以对ansible进行各项参数的调整,包括并发线程.用户.模块路径.配置优化等,常用参数如下: [defaults] inventory = /etc/ansible/hosts 被控端IP信息列表: library = /usr/share/my_modules/ Ansible默认

Linux硬链接、软链接的创建及两者的区别

一.硬链接 链接数就是名字的数量: ln(link) 硬链接,多个相同的inode文件(同分区),多个硬链接文件的存在在硬盘上只占用一个文件的容量. 创建的硬链接是平等的,inode相同,删除某一个互不影响,其他文件仍然可以使用. 硬链接的本质:给一个文件创建多个名字. 创建多个硬链接,观察链接数的变化(+1),链接数是几就是有几个文件名. 同一分区中,同一个inode号必定是一个文件. 原始的文件 [[email protected] testdir]# ll -iman.txt 15 -rw

linux中的硬链接和软链接

一.ln命令概述 它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间. 二.硬链接和软链接的区别 硬链接:是通过文件系统的inode连接来产生新的文件名,而不是产生新文件 软链接:类似Windows的快捷方式功能的文件,可以让你快速连接到目标文件(或目录) 三.硬链接 语法:ln

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同. 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现