在linux ext2文件系统中,一个文件的属性存放在inode中,而数据存放在block中。每个文件占用一个inode,inode中记录了文件的权限和block地址,通过inode可以定位到block。

在文件系统初始化后,inode和block的数量就确定了(所以大量小文件是会消耗inode的)。

目录也是一个文件,也有inode和block,目录的block中记录了该目录下的文件名和对应的inode号。定位一个文件,入口是文件路径,也就是从目录开始。

hard link

ln zhang zhang_hd

新加了一个文件名zhang_hd,它对应的inode号和zhang的inode号相同。使用限制:无法跨文件系统,无法为目录建立。

symbol link

ln -s zhang zhang_so

新建一个文件zhang_so,它有自己的inode和block,block中记录的是目标文件的文件名。

操作实例:新建文件,分别为其建立硬链接、软链接,最后移动源文件。

听人说过,在linux同一个文件系统内,mv 操作非常快,为什么呢,因为它并不真的移动数据,只是作了一个rename的操作。

linux文件软链接、硬链接的更多相关文章

  1. linux文件系统软链接硬链接

    引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇 ...

  2. linux/mac系统的软链接文件与硬链接文件

    1.硬连接只能使用在文件上,不可以使用在文件夹上.至于文件前面的硬链接数字的含义如下: 如图标注区,为硬连接的数量,文件前的数字1表示没有硬链接.文件夹前面的数字至少是2,含义是这个文件夹是空文件夹, ...

  3. 实例讲解Linux系统中硬链接与软链接的创建

    导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说 ...

  4. Linux中的硬链接和软链接的概念、区别及用法

    概念: 硬链接(hard link): A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指 ...

  5. windows中的软链接硬链接等

    学校嘛,有些时候还是得逆逆上网客户端啥的,并且学校的不少工作,这Windows的需求还是挺强的,之前Win10的体验并不是太好,不过时隔这么久,打算从7升级到10了,恰好系统也该换了. 首先是命令行的 ...

  6. linux 软连接和 硬链接的区别

    Linux软链接硬链接的区别   ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下 ...

  7. linux文件软链接与硬链接

    1.命令格式: ln [参数][源文件或目录][目标文件或目录] 软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间. 2.命令功能: Linux文件系统中,有所谓的链接(link),我们 ...

  8. Linux中的硬链接和软链接

    软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方 ...

  9. Linux下的硬链接与软链接

    本文总结自: https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html#fig2 一个文件可以用下图表 ...

随机推荐

  1. 【Ruby】【YAML】

    require "YAML" var = YAML.load(File.open('b.yml')) #哈希puts var.class #Hashprint var ," ...

  2. module.exports小程序模块化,require

    小程序模块化 可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块.模块只有通过 module.exports 或者 exports 才能对外暴露接口. tips:exports 是 mo ...

  3. c# DataTable 序列化json

     if (ds.Tables[0].Rows.Count != 0)                 {                     var list = GetJsonString(ds ...

  4. 雷林鹏分享:C# 数组(Array)

    C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合.数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. 声明数组变量并不是声明 number0.number1... ...

  5. 2017-2018-2 20165303 实验三《Java面向对象程序设计》实验报告

    实验三 敏捷开发与XP实践-1 实验要求 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参 ...

  6. English trip V1 - B 17. Giving Information 提供信息 Teacher:Taylor Key: Person Information

    In this lesson you will learn to say your phone number and address.  这节课讲学习说你的手机号码和地址. 课上内容(Lesson) ...

  7. linux进程管理之作业控制

    作业控制 jobs ==================================================================================== 作业控制是 ...

  8. p1518 The Tamworth Two

    #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> ...

  9. DPDK 16.04/16.11.2 默认tx offload是关闭的引起tx vlan offload无效

    打开IXGBE调试日志发发现:tx使用ixgbe_xmit_pkts_vec,默认tx offload无效了PMD: ixgbe_set_tx_function(): Using simple tx ...

  10. 0.1.3 set的用法

    set的特性是,所有元素都会根据元素的键值自动排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值.set不允许两个元素有相同的键值. ...