美文网首页
链接文件

链接文件

作者: Peng_001 | 来源:发表于2020-05-29 11:12 被阅读0次

    如果需要在系统上维护同一文件的两份或者多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。

    在linux 中有不同类型的文件链接:
    1)符号链接;2)硬链接。

    符号链接

    符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。

    要为一个文件创建符号链接,原始文件必须事先存在。然后可以利用ln -s 创建符号链接。

    touch a.txt
    ln -s a.txt b
    

    即通过ln -s 创建了符号链接,将b 链接到了a 上。

    -rw-r--r--  1 mugpeng  wheel  12 May 29 10:26 a.txt
    lrwxr-xr-x  1 mugpeng  wheel   5 May 29 10:23 b -> a.txt
    

    需要注意的是,符号链接的文件大小与数据文件的文件大小并不相同。这是因为它们本质上就是两个内容并不相同,完全不同的文件。

    我们可以通过查看文件的inode编号。该编号为用于标识的唯一数字,该数字由内核分配给文件系统中的每一个对象。要查看文件或目录的inode 编号可以使用ls -i

    $ ls -i 
    8611212722 a.txt    8611212723 b
    

    由此可见它们是不同的文件。

    硬链接

    硬连接也会创建独立的虚拟文件,其中也包含了原始文件的信息及位置。但和符号链接不同的是,硬连接创建的文件从本质上和源文件为同一个文件。
    引用硬连接文件就等同于引用源文件。
    通过下面的结果不难发现,带有硬连接的文件共享inode 编号。

    $ ln a.txt c
    $ ls -li
    total 16
    8611212722 -rw-r--r--  2 mugpeng  wheel  12 May 29 10:26 a.txt
    8611212723 lrwxr-xr-x  1 mugpeng  wheel   5 May 29 10:23 b -> a.txt
    8611212722 -rw-r--r--  2 mugpeng  wheel  12 May 29 10:26 c
    

    注意点

    我们只能对处于同一存储媒体的文件创建硬链接。若想在不同存储媒体的文件之间创建链接,则只能使用符号链接

    另外,复制链接文件的时候一定要小心。如果使用cp 命令复制文件,而该文件又被链接到了另一个源文件上,那么我们cp 得到的其实是源文件的副本。

    同一个文件可以拥有多个链接,完全没有问题。但需要注意的是,尽量不要创建软链接文件的软链接。因为这会形成混乱的链接链,不仅容易断裂,可能还会造成各种麻烦。

    相关文章

      网友评论

          本文标题:链接文件

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