【Linux入门】四、文件处理命令4 -- 链接命令

文件处理命令

目录处理命令 ln

命令名称:ln

命令英文原义:link

命令所在路径:/bin/ln

执行权限:所有用户

语法:ln 选项[-s] [原文件] [目标文件]

            -s 创建软链接(软链接相当于Windows中的快捷方式)

            原文件:想生成链接文件的文件

            目标文件:新生成的链接文件的名称

功能描述:生成链接文件

用法:

创建文件/etc/issue的软链接/tmp/issue.soft

ln -s /etc/issue /etc/issue.soft

创建文件/etc/issue的硬链接/tmp/issue.hard

ln /etc/issue /etc/issue.hard

【Linux入门】四、文件处理命令4 -- 链接命令

创建完/etc/issue文件的软链接和硬链接文件后,查看一下这3个文件的属性:

可以看到:

【软链接文件】

文件类型:l(代表软链接文件)

权限:所有者&所属组&其他人的权限均为rwx(可读可写可执行),即所有人都有全部的操作权限;

为什么软链接的文件可以给所有用户都是所有权限呢?原因在于,软链接文件相当于Windows下的快捷方式;用户对软链接进行操作时,到底具有什么权限是由原文件的权限最终决定的。

文件大小:软链接文件仅仅只是一个符号链接,文件大小很小;

文件名:在软连接的文件名中,有一个特殊的指示(箭头指向/etc/issue),表示该软链接指向的原文件;当用户运行软链接文件时,归根结底都会找到原文件执行。

特点:

1)文件类型用l标识,所有用户权限都是rwx;

2)文件很小;

3)文件名属性有个箭头指向原文件。

【硬链接文件】

除了文件名不同,其余信息一模一样(好像是使用了cp -p,但相比cp -p区别在于:原文件和链接文件可以同步更新)

即原文件和硬链接文件其中一个发生变化,另一个会同步更新:

使用 echo 'from beginner to abandon'>>/etc/issue 往/etc/issue文件末尾写入from beginner to abandon后,可以看到硬链接文件也同步更新;

【Linux入门】四、文件处理命令4 -- 链接命令

此外,假如删除掉原文件,软链接(快捷方式)会失效,查看软链接文件会提示“没有那个文件或目录”,因为找不到原文件了;

而硬链接文件则依然可以访问,没有影响;

怎么判断一个文件的硬链接?通过i节点识别

我们使用ls -i查看一下3个文件的i节点,可以看到硬链接文件的i节点号与原文件相同

【Linux入门】四、文件处理命令4 -- 链接命令

一个文件一定有一个i节点,但一个i节点不一定只对应一个文件,硬链接就是其中一个例子;

一个i节点映射到了多个文件,但删除其中一个文件,另一个文件也依然存在;

当对一个文件进行操作时,在内核层面上是对i节点进行操作,这也就是为什么原文件和硬链接可以同步更新;

实际使用中硬链接使用很少,这里有所了解即可。

硬链接特点:相当于文件的拷贝备份,但可以同步更新,即使原文件丢失,硬链接文件依然可以访问,没有影响。

此外,硬链接不能跨分区使用,不能针对目录使用,而软链接都可以。