linux下的使⽤ln创建软链接和硬链接
作⽤: 创建软链接或者硬链接
Linux 系统下每创建⼀个⽂件,系统都会为此⽂件⽣成⼀个 index node 简称(inode) ,⽽每⼀个⽂件都包含⽤户数据(user data) 与元数据(metadata)
⽤户数据⾥记录了⽂件的真正内容.
元数据⾥记录的是⽂件的附加属性,如⽂件⼤⼩,创建时间,所有者等,其中上⾯提到的 index node 就保存在元数据中.在linux 中⽂件名并不是⽂件的唯⼀标识,index onde 才是唯⼀标⽰,系统查⽂件也是通过 index node 来查内容数据块.
如何查看⽂件的 index node:
➜ /Users/zhangzhi >ls -i
31615656 AndroidStudioProjects 30836545 go
1152719 Applications 49115578 images
31827389 CNode 13208576 ktsgs.zip
595399 Desktop 44722768 pandoc_demo
595275 Documents 49218456 pgadmin.log
595277 Downloads 15078624 pomelo
7094352 LevelTest 1009499 project
7098493 LevelTest.zip 1011801 qdb
595388 Library 5901898 qdb.zip
595439 Movies 23150187 test
595441 Music 1010768 tmp
595443 Pictures 17956310 trunk
595445 Public 17970255 trunk.zip
32072972 app 41999857 webwork
1009500 code 13208610 游戏配置
22509232 databak
我们看到的前⾯的数字序列就是 index node
如何理解呢,你可以想象成 windows 操作系统⾥的快捷键.对同⼀个⽂件的访问提供了多个⼊⼝.
指令:
ln [option] link_file source_file
(link_file是待建⽴链接⽂件的⽂件,source_file是新创建的链接⽂件)
-f 建⽴时,将同档案名删除.
-i 删除前进⾏询问.
⽰例:
ln -s myfile mylink 建⽴myfile ⽂件的软链接 mylink
ln myfile mylink 建⽴myfile 的硬链接 mylink
软链接
ln -s myfile mylink
软链接创建后,⽤户数据中存储的并不是⽂件本⾝的记录,⽽是⼀个指向原⽂件路径的⼀个指针.但是它有⾃⼰的 index node 序列.
所以 ,软链接其实就是⼀个新的⽂件,但是这个⽂件很特殊,因为他的⽤户数据中放的不是⽂件内容,⽽是⼀个指向其他⽂件的指针.
软链接有下⾯⼏个特点:
多个软链接有多个不同的 index node
不仅可以对⽂件创建,还可以对⽬录创建软链接
软链接可以交叉⽂件系统
删除软链接并不会影响原⽂件,但是原⽂件被删除,这个软链接就成了⼀个死链接.
硬链接
ln myfile mylinklinux创建文件指令
硬链接创建后,⽤户数据中存储的是⽂件本⾝记录,其他他的⽤户数据和元数据都和 myfile ⼀样,唯⼀不同的是⽂件名.所以硬链接就是同⼀个⽂件有了多个⽂件名, 但是多个⽂件名都指向了同⼀个 index node
这样看来,硬链接就是有多个别名的同⼀个⽂件.
硬链接有下⾯⼏个特别:
他们有相同的 index node
有相同的数据记录
只能在已经存在⽂件上创建硬链接
删除其中任何⼀个,其他硬链接不受影响.
只能对⽂件做硬链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论