linux之实体链接与符号链接-ln 命令

链接档(link):

就是类似Windows 系统底下的快捷方式!第一个属性为 [ l ](英文L 的小写),例如 [lrwxrwxrwx]。

背景知识:

在 Linux 底下的链接档有两种,一种是类似 Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录);另一种则是透过文件系统的 inode 链接来产生新档名,而不是产生新文件!这种称为实体链接 (hard link),又叫做硬链接。

首先需要知道linux中文件存储的方式,是文件名和文件内容单独分开存储在硬盘上的。每个文件的文件内容被分配到一个标示号码,就是索引节点号,inode,文件内容由 inode 的记录来指向;

想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。也就是说,其实文件名只与目录有关,但是文件内容则与 inode 有关。那么想一想,有没有可能有多个档名对应到同一个 inode 号码呢?有的!那就是 hard link 的由来。

创建hard link

在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。

所以简单的说:hard link 只是在某个目录下新增一笔档名链接到某 inode 号码的关连记录而已。

ln /path1/genomic.fna /path2/index/bwa_hael/genomic.fna
ln /path1/genomic.fna /path2/index/bwa_hael/genomic2.fna

同一个file可以通过硬链接的方式放到不同目录下,甚至也可以命名为file2, 还不会重复占用存储,虽然文件夹或者名字改变了,但实际内容一样,都可以进行文件的操作,删除其中一个,另一个文件不受影响。

硬链接被限制在一个单一的文件系统中。此处的“文件系统” 是指挂载在特定挂载点上的分区或逻辑卷,比如 /home。这是因为在每个文件系统中的 inode 号都是唯一的。而在不同的文件系统中,如 /var 或 /opt,会有和 /home 中相同的 inode 号。

因为所有的硬链接都指向了包含文件元信息的单一inode ,这些属性都是文件的一部分,像所属关系、权限、到该 inode 的硬链接数目,对每个硬链接来说这些特性没有什么不同的。这是一个文件所具有的一组属性。唯一能区分这些文件的是包含在 inode 信息中的文件名。链接到同一目录中的单一文件/ inode 的硬链接必须拥有不同的文件名,这是基于同一目录下不能存在重复的文件名的事实的。

文件的硬链接数目可通过 ls -l 来查看,如果你想查看实际节点号,可使用 ls -li 命令。

创建Symbolic Link (符号链接,亦即是快捷方式)

相对于 hard link , Symbolic link 可就好理解多了,基本上, Symbolic link 就是在建立一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件的档名!由于只是利用文件来做为指向的动作, 所以,当来源文件被删除之后,symbolic link 的文件会打开不了了, 会一直说“无法开启某文件”。实际上就是找不到原始文件了!

ln -s /path1/genomic.fna /path2/index/bwa_hael/genomic.fna
file2 的信息是这样的:file2->file1,表示 file2 指向 file1。

file2 的文件信息里,第一列表示权限的第一个字母变成了 l,表示 link(链接)。之前硬链接的时候是没有l的,硬链接外表看起来就和普通文件类似。file2 的颜色是红色,也说明是链接文件。

Symbolic Link 与 Windows 的快捷方式可以给他划上等号,由 Symbolic link 所建立的文件为一个独立的新的文件,所以会占用掉 inode!

总结:

hard link 更安全,有目录限制,也无法做目录的链接;Symbolic link使用面更广。

[root@study ~]# ln [-sf] 来源文件 目标文件
选项与参数:
-s :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link
-f :如果目标文件存在时,就主动的将目标文件直接移除后再建立。

附:

链接档(link)的用法之前用过一次,觉得简单就没整理用法,今天再用就忘了,又查了一遍,嗯,这次整理一下。以后直接翻看自己的笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值