美文网首页Linux基础学习教程Linux系统
Linux 基础教程 12-基本命令ln

Linux 基础教程 12-基本命令ln

作者: Surpassme | 来源:发表于2017-04-17 22:00 被阅读20次

    ln(link)命令用于在文件或目录之间创建同步链接。当我们需要在多个目录中,使用到相同的文件时,通常我们会选择在这些不同的目录中将需要用到的文件都复制一份,这种做法会带来两个问题:

    • 当原始文件被更改后,需要再次为每个目录重新复制一份,否则会造成同一文件存在多个版本
    • 同一个文件被复制多份,会占用额外的磁盘空间

    针对这种情况,我们引用Linux中一个非常重要的命令ln

    链接分类

    在Linux中,链接可分为两类:硬链接(Hard Link)符号链接(Symbolic Link),亦称软链接。默认的类型为硬链接。

    硬链接(Hard Link)

    硬链接就像一个文件有多个文件名,以文件副本的形式存在。硬链接主要的特性如下:

    • 不能在不同的文件系统之间创建硬链接,即链接文件和被链接文件必须在同一文件系统中
    • 硬链接无法引用目录
    • 只能对已经存在的文件夹进行创建
    • 删除硬链接文件并不影响被链接的文件

    符号链接(Symbolic Link)

    符号链接是为了克服硬链接的局限性而创建的。通过创建一个特殊的文件,该文件指向另一个文件的位置,所有的读写文件内容的命令被用于符号链接时,将沿着链接方向前进访问实际文件。类似于Windows中的快捷方式。

    • 符号链接可以跨文件系统
    • 符号链接可以对文件或目录创建
    • 可对不存在的文件或目录创建链接
    • 删除符号链接并不影响被指向的文件,但若被指向的原文件被删除,则相关的符号链接会成为死链接,若被指向的路径文件被重新创建,则死链接可以恢复为正常的链接

    两者联系与区别

    • 1.ln命令会保持每一处链接文件的同步性,即无论更改哪一个位置,其它的文件都会发生相同的变化
    • 2.两者都是一种映射,硬链接映射到inode,符号链接仅是链接到一个路径。

    简单的说,符号链接就像是快捷方式,而硬链接就像是备份。符号链接可以做跨分区的链接,而硬链接由于inode的缘故,只能是本分区中做链接,因此符号链接使用的频率要高一些。

    基本语法

    ln [参数] [源文件/目录] [目标文件/目录]
    

    详细参数解释如下所示:

    参数 功能
    -f 如果在目标位置存在与链接名相同的文件,则删除该文件
    -s 符号链接
    -d 允许系统管理员创建目录的硬链接
    -b 对在链接时会被覆盖或删除的文件进行备份

    示例

    • 1、新建硬链接,并将原文件删除,再查看结果,示例如下:


      12- ln示例-1_c2i.jpg

    从示例中可以看到,使用硬链接会产生一个内容相同的文件firstbak.txt,效果相当于复制。因此当删除first.txt时,并不会影响到firstbak.txt

    • 2、新建符号链接,并将原文件删除,再查看结果,示例如下:


      12-2 ln示例-2_c2i.jpg

    从示例中可以看到,使用符号链接仅产生一个指向来源文件的链接文件,当原文件被删除后,链接文件也跟着失败,是不是觉得跟Windows快捷方式很像?

    本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

    MyQRCode.jpg

    相关文章

      网友评论

        本文标题:Linux 基础教程 12-基本命令ln

        本文链接:https://www.haomeiwen.com/subject/wnjxzttx.html