精华内容
下载资源
问答
  • linux 硬连接和软连接

    2017-05-10 22:18:04
    linux 硬连接和软连接

    系统如何通过文件名访问磁盘数据

        每个文件都对应了一个inode对象 , inode对象指出该文件在物理磁盘上的位置, 访问文件时,操作系统通过文件找到一个文件的 inode 索引 ,找到对应的inode


    硬连接和软连接的区别

        软连接和硬链接都是产生文件快捷方式的操作(类似于win下的快捷方式),只是底层索引方式不同

        硬连接:创建出来的文件和原文件对应的inode对象是同一个,当系统访问硬连接文件的时候,由于inode相同,所以读写的磁盘文件信息都是都是一样的

        举例:

            ln  f1 f2  // 创建f1的硬连接文件f2
    如上,f2为f1的硬连接文件,对文件f1进行读写操作的时候,操作系统会通过文件名 f1 从而找到对应的inode对象,通过该对象找到要读写的文件在物理磁盘上的位置;对文件f2进行读写的时候,操作系统会通过文件名f2从而找到对应inode对象,通过该对象找到要读写的文件在物理磁盘上的位置。

              由于两个文件名对应的inode对象相同,所以读写操作的实际上是同一个文件。


        软连接:软连接文件和原文件对于的inode是不同的,软连接文件的inode对象指向的是原文件的绝对路径,通过该绝对路径,系统寻找到源文件,最后通过原文件找到对应原文件的inode对象,通过该inode对象读写磁盘信息。

        举例:

    ln  -s f1 f3 // 创建f1的软连接文件f3

    访问文件的过程和硬连接一样,不再重述。与硬连接的区别不同的是,访问软连接文件f3的时候,操作系统找到的inode指向的不是f1对应的磁盘文件,而是 【文件f1的绝对路径】,通过f1的路径找到文件f1,然后,操作系统找到f1对应的inode对象, 再通过该对象找到要读写的文件在物理磁盘上的位置。



    参考文章:http://www.jianshu.com/p/dde6a01c4094

          : http://blog.csdn.net/jesseyoung/article/details/42524813

    (如有错误,多多指正)

    展开全文
  • Linux硬连接和软连接

    2019-11-04 23:26:38
    最近学习了linux的文件系统,以下是关于软硬连接的整理,参考了如下的三篇博客,写了一些自己的心得,有不正之处希望指出! 参考博客: https://blog.csdn.net/ljianhui/article/details/9324043 ...

    最近学习了linux的文件系统,以下是关于软硬连接的整理,参考了如下的三篇博客,写了一些自己的心得,有不正之处希望指出!

    参考博客:

    https://blog.csdn.net/ljianhui/article/details/9324043

    https://blog.csdn.net/e421083458/article/details/12653743

    https://blog.csdn.net/u012062455/article/details/78553191

    一、Linux下的两种连接文件及创建方式

    1.软连接:新建inode结点指向连接文件的文件名,再根据文件名连接到正确的目录去取得目标文件的inode,最终就能够读取到正确的数据了。

    2.硬连接:在某个目录下新建一条文件名连接到某inode号码的关联记录,即多个文件名对应到同一个inode号码

    3.inode:在linux下,每个文件都会占用一个inode,文件名只与目录有关,但文件的内容则与Inode有关。想要读取一个文件,必须通过目录记录的文件名来指向正确的inode号码才能读取。

    4.创建连接:

    硬连接:ln 源文件 硬连接

    软连接:ln -s 源文件 软连接

    以上命令为:先创建一个文件source.txt,再通过ln和ln -s分别创建了硬连接hardlink和软连接softlink

    二、inode数目:

    1.使用硬连接设置连接文件,只是在某个目录下的block多写入一个关联数据而已,既不会消耗inode也不会消耗block数量。

    2.使用软连接设置链接文件,会消耗inode和block

    3.硬连接与源文件的inode值一样,软连接则反之,但不管是由软硬连接创建出来的文件还是源文件,都可实现可读可写的一致性。在源文件和连接文件里 的修改都是有效的。

    将'source'写入source.txt,'hardlink'写入hardlink,'softlink'写入softlink,不管是在源文件source.txt中还是在连接hardlink,softlink中,写入都有效,即读写符合一致性原则。

    4.通过ll -i 文件名/连接名 可以查看文件或连接的详细信息。

       

    第一列是inode的值,可以看出源文件source.txt和硬连接hardlink有相同的inode,第二列第一个字符“-”说明该文件是普通文件,“l”说明该文件是连接文件(比如softlink),第三列是连接数,因为hardlink和source.txt对应同一个inode,故该inode的连接数是2,此外softlink -> source.txt说明softlink是source.txt的一个软连接。

    三、通俗理解软,硬连接

    1.当源文件source.txt被删除时,对应的软连接softlink不可用,当尝试查看软连接softlink时,会报错该文件不存在,可见软连接是依附于源文件的,这与windows里的“快捷方式”类似。但删除软连接时,对源文件不会造成影响,只能算是删除了一个”快捷方式“而已。

    2.当源文件被删除时,对应的硬连接不会受影响,这也是其防止“误删”的原因。可以这样抽象的理解,这有一个inode节点,源文件和硬链接可以看作一些指向此inode节点的指针,当删除源文件或删除硬链接时,相当于删除了一个指向inode的指针,但此Inode还有其他指针所指(即对应的文件依然存在)。只有当所有的硬链接和源文件都删除时,即删除了所有指向inode的指针,此时inode节点对应的文件才会被删除。(可以看作硬连接和源文件名属于同等地位,没有谁依附谁的关系)官方的话:在硬连接中,删除文件时,只有当连接数为0时,才能文件真正删除,否则只会把文件的连接数减1。

    3.举个例子,这有一个房间和打开这个房间的钥匙,软连接相当于存储了这把钥匙存放的位置,然后通过这个位置先找到钥匙,然后开锁进房间。当原来的钥匙丢了,你通过软连接存储的钥匙位置也就没用了,你依然打不开房门。这也就是删除了源文件,软连接也失效的原因。硬连接相当于你又重新配了几把钥匙,即使你原钥匙丢了或者配的钥匙丢了,只要你还有至少一把钥匙,你仍然能打开房门。只有你所有钥匙都丢了,你才打不开房门。

    展开全文
  • Linux 硬连接和软连接

    2012-09-18 13:33:11
    硬连接硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一

    1.Linux链接概念
    Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

    【硬连接】
    硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

    【软连接】
    另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

    2.通过实验加深理解
    [oracle@Linux]$ touch f1          #创建一个测试文件f1
    [oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
    [oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
    [oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
    total 0
    9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
    9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
    9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

    从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

    [oracle@Linux]$ echo "I am f1 file" >>f1
    [oracle@Linux]$ cat f1
    I am f1 file
    [oracle@Linux]$ cat f2
    I am f1 file
    [oracle@Linux]$ cat f3
    I am f1 file
    [oracle@Linux]$ rm -f f1
    [oracle@Linux]$ cat f2
    I am f1 file
    [oracle@Linux]$ cat f3
    cat: f3: No such file or directory

    通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

    3.总结
    依此您可以做一些相关的测试,可以得到以下全部结论:
    1).删除符号连接f3,对f1,f2无影响;
    2).删除硬连接f2,对f1,f3也无影响;
    3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
    4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除

    展开全文
  • linux硬连接和软连接

    2011-11-28 19:35:14
    Linux中的文件读取方式为:  先通过一层一层的目录获取文件相关的关联数据;  在到对应的inode获取文件属性,以及文件内容数据所在的快;  最后到块区域获取文件的数据;   1.硬连接(实际连接)  硬连接...

     

    Linux中的文件读取方式为:

       先通过一层一层的目录获取文件相关的关联数据;

      在到对应的inode获取文件属性,以及文件内容数据所在的快;

      最后到块区域获取文件的数据;

     

    1.硬连接(实际连接)

       硬连接只是在莫个目录下新增一个该文件的关联数据而已,

          例:假设/root/crontab为一个硬连接的文件,连接到/etc/crontab文件,其实/root/crontab和/etc/crontab是同一个文件,

    只是有连个目录(/etc与/root)记录了crontab文件的关联数据。即,有/etc目录记录的关联数据克制,crontab的inode放在

    A处,而/root目录下的关联数据,crontab同样也指到A处的inode,所以crontab文件的inode与块都没有改变,只是有两个

    目录记录来关联 数据

    硬连接的限制:

    •         不能跨文件系统;
    •         不能连接目录

    2.符号连接(快捷方式)

             符号连接就是建立一个独立的文件,这个文件会让那个数据的读取指向它连接文件的内容。由于只是利用文件来作为

    指向的动作,所以,当源文件被删除之后,符号连接的文件不能打开。会占用inode与块

     

     

    3.命令

        ln [-sf] 源文件 目标文件

         参数:

           -s:如果ln不加任何参数旧进行连接,那么就是硬连接, -s是符号连接

           -f:如果目标文件存在时,旧主动将目标文件之际删除后在建立

    展开全文
  • Linux硬连接和软连接详解

    千次阅读 2017-11-16 17:02:55
    Lnux也有类似于windows下的快捷方式,这种快捷方式linux下称作硬连接(hard link)和软连接(symbolic link,又称作符号链接)。创建链接文件 创建linkfile.txt文件[root@localhost tmp]# touch linkfile.txt ...
  • http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/
  • 主要介绍了详解linux软连接和硬链接,链接与软链接是 Linux 文件系统中的一个重要概念,这里整理了详细的整理,有需要的小伙伴可以参考下。
  • 硬链接与链接是 Linux 文件系统中的一个重要概念,其...1、硬连接为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux...
  • Linux软连接和硬连接

    2018-12-27 14:10:32
    软连接  命令: ln -s 原文件 目标文件  特征:  1.相当于windows的快捷方式  2.只是一个符号连接,所以软连接文件大小都很小  3.当运行软连接的时候,会根据连接指向找到真正的文件,然后执行  4.所有...
  • 如果A文件B文件的关系是硬连接的关系。当用户修改了A文件的内容,那么B文件的内容也会发生更改。如果修改的B文件,那么A文件的内容也会发生更改。 特点: 1、硬连接不限于两个文件之间,可以在多个文件之间进行。...
  • linux中的硬连接和软连接linux中的硬连接和软连接 背景 连接 硬连接 软连接 example reference 背景linux中的文件主要分3块, - 真正的数据 - 索引节点号(inode index) - 文件名读取文件的顺序是通过文件名,...
  • Linux软连接和硬链接

    2021-01-09 17:31:13
    1.Linux链接概念 ...硬连接的作用是允许一个文件拥有多个有效路径名,这样用户可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一
  • linux 软连接和硬连接

    2020-03-28 10:59:42
    硬链接:硬连接文件的引入的作用使得可以使用别名来引用文件,避免被误删,----只有硬链接个数为1时,对一个文件执行删除操作才会真正删除文件的副本。硬链接是个普通文件,连接文件被链接文件都指向它,文件实际...
  • linux 链接和软连接

    2017-05-15 21:17:27
    链接和软连接Linux链接概念Linux链接分两种,一种被称为链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生链接。【软连接】【ln -s 源文件名 软连接文件名】 另外一种连接...
  • linux 硬连接软连接与复制 分类: LINUX 对一个文件做硬连接软连接,复制,查看三者的不同之处: 创建一个软连接 [root@localhost tmp]# ln -s tmp soft_tmp 创建一个硬连接: [root@...
  • 一直没有深刻了解过连接这块的知识,...先来作个实验,在咱们的用户目录下,创建一个测试文件夹,而后新建一个文件,并建立这个文件的软连接和硬连接。以下: htmlvim file1 #新建文件ln -s file1 file1.soft #软...
  • 初窥Linux 之 区分硬连接和软连接

    千次阅读 多人点赞 2013-07-14 13:52:03
    Linux下面的连接文件有两种——软连接和硬连接,虽然都是连接文件,但两者却有很大的区别。一种是类似于Windows的快捷方式功能的文件(或目录),这种连接称为软连接;另一种则是通过文件系统的inode连接来产生新...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,154
精华内容 24,061
关键字:

linux硬连接和软连接

linux 订阅