赞
踩
ln可以用来建立链接,不过ln是建立硬链接,然后若是加选项-s则为建立软链接(ln -s)
建立软链接 ln -s 源文件 目标文件(链接名)
若是链接的是一个不存在的文件,则会出现指向错误
执行正常软链接能过执行但是执行错误软链接则不能执行
ln建立一个硬链接只是对这个文件取了一个别名,他们的inode是相同的
内核记录了硬链接链接个数,Inode为530047的硬链接个数为2,普通文件建立时它的硬链接数是1因为没有其他的硬链接指向这个文件。
而我们在删除文件时干了两件事情:1.在目录中将对应的记录删除,2.将硬连接数-1,如果为0,则将对应的磁盘释放。
删除链接可以使用unlink或者直接用rm(链接也是一个文件)删除
软链接是一种类似快捷方式的,就是在桌面上建立的快捷方式,建立了软链接这个软连接也是一个文件有自己的inode编号,软链接数据块中存的是它指向文件的地址(路径),当点击这个软连接时就是去执行这个地址对应的文件内容。软链接是一个独立的文件,当一个软链接删除时,不会影响它指向路径中的内容,但是若是将指向路径文件删除之后,软链接没有指向,这个软链接就会失败,找不到源头了,就像是桌面快捷方式删除不会对存储在电脑中的应用造成影响,但是若是电脑中应用删除,那么软链接再去查找就找不到对应软件!软链接建立是方便用户去到文件绝对路径去查找这一个软件,更加方便了用户只需要点击软链接就能执行同样的结果!
硬链接就是相当于给一个文件取别名,硬链接不是一个独立的文件,他没有独立的inode编号。真正找到磁盘上文件的并不是文件名,而是inode。 其实在linux中可以让多个文件名对应于同一个inode。 硬链接两个文件一切都相同就是换了一个文件名,在上一级目录下,它的数据块中,inode与文件名的映射数量+1,而这也侧面证明了文件名不在当前目录下,不然同一个inode不会存在两个文件名。硬链接就是在特定目录的数据块中新增文件名和指向文件的inode编号的映射关系,每一个inode可以被多个文件名指向,统计硬链接数通常使用引用计数方式统计。增加一个硬链接就是在目录下将新的文件名和inode映射拷贝一份。所以任何一个文件,无论是目录还是普通文件都有Inode,每一个inode内部都有一个引用计数统计硬链接的数量目录中保存的是文件名:inode和文件名之间的映射关系.
软链接应用场景
就是一个快捷方式
系统中存在大量的软链接,用ls -/lib64/. -l
查看
软链接应用场景最常见就是建立快捷方式
硬链接应用场景
创建一个目录,这个目录的硬连接数是2,而创建一个普通文件它的硬链接数是1.为什么?
因为任何一个目录下都有两个文件.
文件和..
文件
.
代表当前文件,而..
代表上一目录文件
因为.
与当前目录的inode编号是一样的,而..
和上一目录的inode编号一样,所以.
是当前目录,..
是上一级目录,所以.
就相当于这一目录的一个别名,就是它的一个硬链接,而再在这一目录建立一个硬链接它的硬链接数会变为3 (理论上).每一个目录下都有.
和..
文件着更方便与路径的切换。Linux系统不允许对目录建立硬链接因为会形成环路问题,可能会出现系统及bug。所以当你在对目录建立硬链接时会阻止对目录建立硬链接!
硬链接通常应用于对路径来回切换
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。