zoukankan      html  css  js  c++  java
  • linux中的硬连接和软连接

    linux中的硬连接和软连接

    背景

    linux中的文件主要分3块,
    - 真正的数据
    - 索引节点号(inode index)
    - 文件名称

    读取文件的顺序是通过文件名称。找到相应的inode。然后通过inode找到相应的数据,进行读取。

    连接

    当我们须要在不同的文件夹,用到同样的文件时。我们不须要在每个须要的文件夹下都放一个必须同样的文件,我们仅仅要在某个固定的文件夹,放上该文件,然后在 其他的文件夹下用ln命令链接(link)它就能够,不必反复的占用磁盘空间。

    硬连接

    硬连接就是将多个不同的文件名称指向同一个inode index。这样通过当中的随意一个文件名称。都会訪问到同一份数据。例如以下图所看到的。文件名称1,文件名称2,文件名称3都会通过同一个inode訪问到同一份数据。


    Alt text

    软连接

    软连接相似windows中的快捷方式。它不是直接连到源文件的inode上的,而是一个新的特殊的文件,它记录了被连的文件名称3的路径。

    Alt text

    example

    ➜  /tmp  ln -s test test1 #symbolic link 
    ➜  /tmp  ln test test2 #hard link
    ➜  /tmp  ls -l test*
    6508253 -rw-r--r--@ 2 deshengkong  wheel  3423  7 10 20:08 test
    6534236 -rw-r--r--  1 deshengkong  wheel   103  7 13 10:22 test.php
    6544973 lrwxr-xr-x  1 deshengkong  wheel     4  7 13 11:13 test1 -> test # symbolic link 该文件的类型是l(link)
    6508253 -rw-r--r--@ 2 deshengkong  wheel  3423  7 10 20:08 test2 # hard link 该文件的文件类型是普通文件
    
    ➜  /tmp  rm test #delete source file
    ➜  /tmp  cat test1 #symbolic link file找不到源文件。所以报错。

    cat: test1: No such file or directory ➜ /tmp cat test2 #hard link file 正常

    reference

    http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
    http://www.cnblogs.com/joeblackzqq/archive/2011/03/20/1989625.html

  • 相关阅读:
    jq原创幻灯片插件slideV1.0
    jq原创弹出层折叠效果
    jq实现鼠标经过图片翻滚效果
    开源代码的来源
    名词解析
    Joomla软件的简单介绍
    Java集合类的使用
    笔记
    MySQL基础篇一
    MySQL基础篇一
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6994506.html
Copyright © 2011-2022 走看看