zoukankan      html  css  js  c++  java
  • Linux 软硬链接详解

    软链接

    软链接: 类似于windows的快捷方式,—>文本文件,但是包含了真实文件的地址
                   源文件删除,则软连接也删除
                   软链接可以放在任何文件系统
                   目录可以创建软连接 --> 和源文件不同的文件,因为软连接目录可以放在任何地方
           

     命令:[root@localhost omc]# ln -s ftl/ ftl.soft   (第一个参数表示源文件,inittab.soft表示快捷方式)
     查看:[root@localhost omc]# readlink ftl.soft  (目标文件不能事先存在,需要ln命令创建)
     删除软连接::[root@localhost omc]#  rm -f oldboy_soft_link

    硬链接

    硬链接:硬链接(Inode一致)与真实文件的大小和创建日期完全相同(相同inode号),类似于copy,同步更新。

                     通过inode索引链接,硬链接多个文件名指向同一个索引,相当于文件的入口,硬链接一个文件有多个入口,相当于文件备份

    原理:通过命令ls –i ,发现硬链接文件和源文件的i结点数字相同,而内核是根据文件的i结点来标识文件的,这两个文件的i结点相同,所有被认为是一个文件,所有同时写入和修改数据。
           硬链接不能跨文件系统,即不能跨分区,类似于windows内不能将C盘的硬链接放在D盘。

     与拷贝区别:拷贝与真实文件的创建日期不同
           硬链接属于复制,源文件删除不影响硬链接
           当所有的硬链接和源文件被删除之后,再放入新的数据占用此空间、磁盘检测,删除的数据会被回收
           可以通过设置硬链接,防止文件被误删除
           注意目录不做硬链接

    命令: ln /etc/inittab /test/inittab.hard
    查看: ls -l /etc/inittab /test/inittab.hard
    查看所有文件的inode: find / -type f | xargs ls -lhi | more

    文件链接

    文件链接的小结:
           -1.ln 默认不带参数到的情况下,创建硬链接, -s  表示创建软连接
            0.软连接可以通过readlink 查看其指向
            1.删除软连接对原文件和硬链接文件无影响
            2.删除硬链接对源文件和软连接文件无影响
            3.删除原文件,对硬链接没影响,但是会导致软连接失效
            4.同时删除源文件,硬链接,会导致整个文件被删除(没有后台进程调用的话)
            5.硬件设备的拍照功能就是应用了硬链接的原理
            6.硬链接和源文件有相同的inode,可以认为是同一个文件或者是同一个文件的多个入口
            7.同时删除硬链接以及源文件,整个文件才会被删除
            8.软连接和源文件有不同的inode,是因为创建了2个不同的文件,相当于快捷方式,还有源文件的位置指向
            9.软连接是一个新文件,里面记录了原文件的路径,软连接的名称必须由ln创建,不能事先存在

    目录链接

    目录链接的小结:
            1.对于目录,不能创建硬链接,可以创建软连接
                默认为2【
                    1.创建的目录本身为一个硬链接。
                    2.新目录ett下的隐藏目录.(点号)为创建的新目录的又一个硬链接,也算一个链接数
                      因此,硬链接数是2】
              硬链接不能跨文件系统  (如果2个文件系统的时候,inode会不一样,所以不允许)
            2.对于目录可以创建软连接,因为软连接可以跨系统,相当于目录的快捷方式,有一个新的inode
            3.目录的硬链接不能跨越文件系统(硬链接原理上)
            4.每个目录下面有一个硬链接符号 .  ,和对应上级目录的硬链接 .. 
            5.在父目录里面创建一个子目录,父目录的链接数目增加1(多了一个..来指向父目录)
                但是创建文件,链接数目不会增加(文件内不会有..来指向上层目录)

  • 相关阅读:
    Vue异步数据交互 promise axios async fetch
    JS数组或对象转为JSON字符换 JavaScript JSON.stringify()
    JS返回数组的最大值与最小值
    Error: Cannot find module './application'
    Express框架
    NodeJS项目制作流程
    模板引擎art-template
    基于NodeJS的网络响应原理与HTTP协议
    leetcode 953. 验证外星语词典 做题笔记
    leetcode 771. 宝石与石头 做题笔记
  • 原文地址:https://www.cnblogs.com/ftl1012/p/ln.html
Copyright © 2011-2022 走看看