返回顶部

Linux ln命令:建立链接(硬链接和软链接)文件

[复制链接]
追梦人Lv.1 显示全部楼层 发表于 2022-1-5 15:08:42 |阅读模式 打印 上一主题 下一主题
  如果要想说清楚ln命令,则必须先解释下ext文件系统(Linux文件系统)是如何工作的。我们在前面讲解了分区的格式化就是写入文件系统,而我们的Linux目前使用的是ext4文件系统。如果用一张示意图来描述ext4文件系统。

  ext4文件系统会把分区主要分为两大部分(暂时不提超级块):小部分用于保存文件的inode(i节点)信息;剩余的大部分用于保存block信息。

  inode的默认大小为128Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的block编号。每个文件需要占用一个inode。大家如果仔细查看,就会发现inode中是不记录文件名的,那是因为文件名记录在文件所在目录的block中。

  block的大小可以是1KB、2KB、4KB,默认为4KB。block用于实际的数据存储,如果一个block放不下数据,则可以占用多个block。例如,有一个10KB的文件需要存储,则会占用3个block,虽然最后一个block不能占满,但也不能再放入其他文件的数据。这3个block有可能是连续的,也有可能是分散的。

  由此,我们可以知道以下2个重要的信息:

  每个文件都独自占用一个inode,文件内容由inode的记录来指向;

  如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的inode,才能成功找到文件内容所在的block块;

  了解了Linux系统底层文件的存储状态后,接下来学习ln命令。

  ln命令用于给文件创建链接,根据Linux系统存储文件的特点,链接的方式分为以下2种:

  软链接:类似于Windows系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。

  硬链接:我们知道,文件的基本信息都存储在inode中,而硬链接指的就是给一个文件的inode分配多个文件名,通过任何一个文件名,都可以找到此文件的inode,从而读取该文件的数据信息。

  ln命令的基本格式如下:

  [root@localhost~]#ln[选项]源文件目标文件

  选项:

  -s:建立软链接文件。如果不加"-s"选项,则建立硬链接文件;

  -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;

  【例1】创建硬链接:

  [root@localhost~]#touchcangls

  [root@localhost~]#ln/root/cangls/tmp

  #建立硬链接文件,目标文件没有写文件名,会和原名一致

  #也就是/tmp/cangls是硬链接文件

  【例2】创建软链接:

  [root@localhost~]#touchbols

  [root@localhost~]#In-s/root/bols/tmp

  #建立软链接文件

  这里需要注意的是,软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求);否则软链接文件会报错。这是初学者非常容易犯的错误。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

达内教育:成立于2002年。致力于面向IT互联网行业,培养软件开发工程师、测试工程师、系统管理员、智能硬件工程师、UI设计师、网络营销、会计等职场人才 达内使命:缔造年轻人的中国梦、缔造达内员工的中国梦 达内愿景:做管理一流的教育公司
  • 商务合作

  • 微信公众号

  • Powered by Discuz! X3.4 | Copyright © 2002-2021, 达内教育 Tedu.cn
  • 京ICP备08000853号-56 |网站地图 | 京公网安备 11010802029508号