基本命令学习 -链接文件:ln命令

Posted 秦露露

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本命令学习 -链接文件:ln命令相关的知识,希望对你有一定的参考价值。

关注「开源Linux」

回复「学习」,有我为您特别筛选的学习资料~

前言

在Windows系统中,快捷方式是指向原始文件的一个链接文件,原文件一旦被删除或剪切到其他地方,会导致链接文件失效。

而Linux中的链接文件是不同于Windows的快捷方式,Linux的链接文件分为软链接与硬链接。

硬链接

可以把硬链接理解为“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。硬链接文件与原文件其实是同一个文件,只是名称不同。

下面我们举个例子:

[root@qll ~]# ll -i /etc/passwd
67544416 -rw-r--r--. 1 root root 882 2 5 11:50 /etc/passwd

使用ln命令在当前目录下创建/etc/passwd文件的硬链接,然后观察其文件属性:


[root@qll ~]# ln /etc/passwd passwd_test
[root@qll ~]# ll -i /etc/passwd passwd_test
67544416 -rw-r--r--. 2 root root 882 2 5 11:50 /etc/passwd
67544416 -rw-r--r--. 2 root root 882 2 5 11:50 passwd_test

可以看出,这两个文件名关联的inode号完全相同,都是67544416,所以它们指向的是同一个文件。

观察上面输出的第二个字段中的第一位,它们都是“​​-​​”,说明文件类型为普通文件,链接类型为硬链接。

观察第三个字段,由1变成了2。这个字段叫作“链接数”,它说明有多少个文件名链接到同一个文件的inode。

硬链接的特点及局限性

  • 几乎不额外占用空间
    硬链接只是在目录中添加一条包含文件名和对应inode的记录,所以它几乎不会额外占用磁盘容量
  • 只要还有一个文件名引用着文件,文件就不会被真正删除
  • 由于技术局限性,不能跨文件系统创建硬链接
  • 不能链接目录

软链接

仅仅包含所链接文件的路径名,因此能链接目录,也可以跨越文件系统进行链接。但是,当原始文档被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质。

还拿 /etc/passwd 文件举例子,这次创建一个软链接并查看其文件属性:

[root@qll ~]# ln -s /etc/passwd passwd_soft
[root@qll ~]# ll -i /etc/passwd passwd_soft
67544416 -rw-r--r--. 1 root root 882 2 5 11:50 /etc/passwd
100663362 lrwxrwxrwx. 1 root root 11 2 19 17:51 passwd_soft -> /etc/passwd

  • 第一列可以出来,两个文件名对应的inode不同,说明这是两个文件。
  • 第二列显示的文件权限也不一样,这一点和硬链接完全不同。注意文件类型被标记为“l”,说明这是一个软链接文件。
  • 第三列,观察两个文件的链接数量,都是1。说明创建软链接并不增加原文件的链接数。
  • 第六列是文件大小,注意新建的软链接文件大小为11Bytes,也就是字符串“/etc/passwd”的长度。
  • 最后一列显示软链接文件指向的源文件。

ln 命令

1. 硬链接

[root@qll tmp]# ln /tmp/data.txt data2.txt #创建硬链接
[root@qll tmp]# rm -rf /tmp/data.txt #删除源文件
[root@qll tmp]# cat data2.txt #删除源文件后,链接文件仍可以正常使用

2. 软链接

[root@qll tmp]# ln -s /tmp/te.txt /tmp/te2.txt #创建文件软链接
[root@qll tmp]# ln -s /bin testbin #创建目录软链接
[root@qll tmp]# rm -rf /tmp/te.txt #删除源文件
[root@qll tmp]# cat /tmp/te2.txt #删除源后,软链接无法使用
cat: te2.txt: 没有那个文件或目录


关注「开源Linux」,提升IT技能

十年磨一剑


以上是关于基本命令学习 -链接文件:ln命令的主要内容,如果未能解决你的问题,请参考以下文章

机器学习的基本概念

数据统计学习的5个基本流程

深度学习基础-机器学习基本原理

学习笔记 | HTML 基本结构和基本标签 ——前端学习第一步!

增强学习 ----- 基本概念

走进AI·机器学习の基本概念