【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
创建完/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后,可以看到硬链接文件也同步更新;
此外,假如删除掉原文件,软链接(快捷方式)会失效,查看软链接文件会提示“没有那个文件或目录”,因为找不到原文件了;
而硬链接文件则依然可以访问,没有影响;
怎么判断一个文件的硬链接?通过i节点识别
我们使用ls -i查看一下3个文件的i节点,可以看到硬链接文件的i节点号与原文件相同
一个文件一定有一个i节点,但一个i节点不一定只对应一个文件,硬链接就是其中一个例子;
一个i节点映射到了多个文件,但删除其中一个文件,另一个文件也依然存在;
当对一个文件进行操作时,在内核层面上是对i节点进行操作,这也就是为什么原文件和硬链接可以同步更新;
实际使用中硬链接使用很少,这里有所了解即可。
硬链接特点:相当于文件的拷贝备份,但可以同步更新,即使原文件丢失,硬链接文件依然可以访问,没有影响。
此外,硬链接不能跨分区使用,不能针对目录使用,而软链接都可以。