zoukankan      html  css  js  c++  java
  • 【linux】——硬链接和符号链接

    索引节点 
       例如:假设我们在硬盘当前目录下建立了一个名为 This is my file.

    文件拷贝命令

    我们键入命令:

    1

    2

    3

    所以文件复制要分配新的

    硬连接

    我们实际使用文件时一般是通过文件名来引用的。通过上面的讨论,我们知道:

    1

    我们知道

    有几个目录项具有相同的
       例如:

    ln /home/zyd/mytext hardlink_mytext

    就建立了一个新的文件

    ’ls -il’

    262456 -rw-rw-r-- 1 zyd zyd 17 Nov 3 14:52 newfile

    262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 hardlink_mytext

    262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 mytext

    硬链接文件有两个限制

    1

    2

    对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。修改其中一个,与其连接的文件同时被修改。

    连接计数

    前面我们介绍了,文件的连接计数域表明本系统中共有几个文件目录项的

    那么对于目录,其

    例如:如果一个目录

    进一步说明

    硬连接文件实际上并不是一种新的文件类型,两个文件互为对方的硬连接。它们应该都是普通文件

    注意连接计数字段

    当我们删除其中一个文件时,系统首先将

    一个文件系统允许的

    互为硬连接的多个文件必须位于同一个文件系统上。根设备及任何一个需要

    Linux

    软链接

    软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和
    ============================================================================================
    Unix中使用i节点(i node)来记录真实的物理文件及其位置,文件名只是指向i节点的一个连接。因此每个文件可以有多个名字,每个名字就称为文件的一个连接,而同一个文件的 所有连接所指向的i节点件完全相同。但在删除时只有全部删除这个i节点的全部连接,才能删除i节点、即删除这个文件本身。


    $ ln l1 l2

    $ ls -l l*

    -rwxr-xr-x 2 user wheel 53212 Dec 4 12:36 l1

    -rwxr-xr-x 2 user wheel 53212 Dec 4 12:36 l2


        上面的例子使用 ln创建了一个连接,然后在ls的结果中可以看到第二列的数字为2,这表示这个文件有两个连接。这样的连接可以建立在不同的目录中,但所有连接所在的目录 必须在同一个文件系统中,才能使用同样的i节点。由于连接是直接指向标识物理文件的i节点,因此这种连接又称为硬连接。

        另一种更灵活的连接方式是符号连接,它没有指向物理文件的 i节点,而是直接指向目录树上的另一个入口,那么当系统访问这个文件时,就沿着它指向的目录树的位置去查找具体文件。这样就能对任何文件系统中的文件和目 录建立连接,因此称为软连接。符号连接可以跨越文件系统,灵活性很大,能够突破物理文件系统的限制维护目录树的一致性,对于系统管理和维护很有用。但是这 种连接方式需要对目录树进行多次查找,增加了文件操作的额外步骤,因此效率较低,因此不应该使用多级连接,及某个符号连接指向的目录还是一个符号连接,甚 至发生符号连接的循环。应该尽量少用符号连接,并避免多级符号连接及符号连接的循环。


    $ ln -s l1 /root/files

    $ ls -l l*

    lrwxrwxrwx 1 user wheel 12 Dec 4 12:36 l1 -> /root/files

    $

    ===========================================================================

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

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

    与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。 

    touch f1(创建一个f1的文件)
    ln f1 f2 创佳一个f2的硬连接
    ln -s f1 f3 创建一个f3的软连接
    此 时如果删除f3,对f1,f2无影响;如果删除f2,对f1,f3也无影响,如果删除f1,那么因为f2也应用f1,所以并不影响f2节点的,touch 创建的文件仍然存在;但是此时f3因为是软连接,导致f3失效。如果删除f1,f2 ,那么touch 创佳的文件会被删除

  • 相关阅读:
    Linux调试工具
    LINUX总结第13篇:LINUX下动态库及版本号控制
    linux虚拟机无法上网 Network is unreachable
    VMware 如何通过现有虚拟机克隆新的虚拟机 (图文)
    Win10下安装虚拟机提示“Intel VT-x处于禁用状态”如何解决
    VMware安装Centos7超详细过程(图文)
    kubernetes---CentOS7安装kubernetes1.11.2图文完整版
    通过Idea进行Kubernetes YAML开发
    如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes
    SpringBoot + Spring Security 基本使用及个性化登录配置详解
  • 原文地址:https://www.cnblogs.com/ngnetboy/p/2733489.html
Copyright © 2011-2022 走看看