美文网首页运维
Linux之软链接和硬链接

Linux之软链接和硬链接

作者: __元昊__ | 来源:发表于2019-03-29 10:25 被阅读2次

    一、介绍
    ln命令用于将一个文件创建链接,链接分为软链接(类似于windows系统中的快捷方式)和硬链接(相当于对源文件copy,程序或命令对该文件block的另一个访问路口),命令默认使用硬链接。

    二、使用方法

    语法:ln [选项][文件]
    选项:-s 对源文件创建软链接

    三、案例:
    1.对文件创建软链接

    [root@ping ~]# ln -s /root/student.sql /root/db/ln.sql
    [root@ping ~]# ls -lh db/ln.sql
    lrwxrwxrwx 1 root root 17 2月  23 15:31 db/ln.sql -> /root/student.sql
    
    

    2.对目录创建软链接

    [root@ping ~]# ln -s db data
    [root@ping ~]# ll -h data/
    lrwxrwxrwx 1 root root 17 2月  23 15:31 ln.sql -> /root/student.sql
    
    

    3.对文件创建硬链接

    [root@ping ~]# ln student.sql db/
    [root@ping ~]# ls -lh db/
    lrwxrwxrwx 1 root root   17 2月  23 15:31 ln.sql -> /root/student.sql
    -rw-r--r-- 2 root root 2.9K 2月  12 10:17 student.sql
    
    

    软链接硬链接复制的区别

    1.硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

    通过ls -al 查看到硬链接和源文件的文件类型一样为“-”而软链接为“l”

    ls -ai 会显示文件的硬链接数量,如果有硬链接则>1

    也可以用 stat XX 来查看文件的inode信息来区分两个文件是复制的还是硬链接的

    其实硬链接和软链接和源文件三者任意一个改变三者都会同步改变,这是他们与复制之间的区别

    2.硬链接只能用于文件,不能用于目录;软链接可以为目录建链接。
    3.硬链接不能跨文件系统操作。

    既然软链接和硬链接和源文件的内容是同步的,那软链接和硬链接的应用场景有什么不同呢

    下面这句话吊了,一语道破了

    A硬链B 删除B后A依然存在,且可用。
    A软链B 删除B后A存在,但不可用了(相当于Windows下快捷方式指向的目标不存在了)

    相关文章

      网友评论

        本文标题:Linux之软链接和硬链接

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