Linux基础系列(四)Linux系统软链接硬链接知识

简介:

软链接

软链接(Soft Link)也称为符号链接(SymbolicLink)Linux里的软链接文件就类似与Windows系统中的快捷键方式。Linux里的软链接文件实际上是一个特殊的文件,文件类型是l。软链接文件实际行可以理解为一个文本文件,这个文件中包含有软链接指向另一源文件的位置信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的源文件实体。

文件软链接

ln -s 源文件   目标文件

软链接的创建:

执行命令“ln -s 源文件  链接文件”,即可完成创建软链接。

误区:创建软链接源文件是需要存在的,要创建的软链接文件是不能存在的,是要用ln 命令创建。

目录软链接

ln -s源文件 目标文件

目录的软链接用的很多  硬链接几乎不怎么用

软链接知识小结

1)软链接类似windows的快捷方式(可以通过readlink查看其指向)

2)软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。

3)删除源文件,软链接文件依然存在,但是无法访问指向的源文件路径内容了。

4)失效的时候一般是白字红底闪烁提示。

5)执行命令"ln-s  源文件 软链接文件",即可完成创建软链接(目标不能存在)

6)软链接和源文件是不同类型的文件inode号也不相同。

7)删除软链接文件是可以用rm命令。

硬链接

硬链接是指通过索引节点(inode)来进行链接。在Linux(ext2,ext3,ext4)文件系统中,保持在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Index Inode)简称Inode,即在系统中文件的编号。

 

Linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。这种情况的文件就称为硬链接。提示:硬链接文件就相当于文件的另外一个入口。硬连接的作用之一是允许一个文件拥有多个有效路径口(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件存储,存储中的快照功能就是应用了这个原理,增加一个快照就多了一个硬链接)。为什么一个文件建立了硬链接就会防止数据误删呢?

因为文件系统(ext2)的原理是,只要文件的索引节点(InodeIndex)还有一个以上的硬链接。只删除其中一个硬链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其他的链接(即数据文件实体并未被删除),只有当文件的最后一个链接被删除后,被删除文件的数据块及目录的链接才会被释放,空间被新数据占用并覆盖。此时,数据就再也无法找回了。也就是说,Linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。

 

 

 

 

硬链接原理图:

 

wKioL1XMGPeAI-4EAADUYFIwDwY282.jpg

文件硬链接

ln 源文件硬链接文件

目录硬链接

目录不允许做硬链接

ls -a 显示隐藏文件

.开头的文件代表隐藏文件

..代表上上级目录(因为他们具有相同的inode)

硬链接知识小结

  • 具有相同inode节点号的多个文件是互为硬链接文件。

  • 删除硬链接或者删除源文件任意之一,文件实体并未被删除。

  • 只有删除源文件及所有对应的硬链接文件,文件实体才会被删除。

  • 当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。

  • 硬链接文件就是文件的另外一个入口(相当于超市的前门,后门一样)

  • 可以通过给文件设置硬链接文件,来防止重要文件被误删。

  • 通过执行命令“ln 源文件硬链接文件” 即可完成创建硬链接。

  • 硬链接文件可以用rm命令删除。

  • 对于静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link)文件就被删除。i_link的查看方法(ls -l 结果的第三列)

 

企业生产软链接作用

1、编译软件时制定版本号(/application/apache2.24)访问时希望去掉版本号(/application/apache),可以设置软链接到编译的路径。所有程序都访问软链接文件(/application/apache),当软件升级高版本后,只需删除链接文件重建到高版本路径的软链接即可(/application/apache)

2、企业代码发布时(PHP程序),需要把所有代码传到一个新发布的临时目录或者新的站点目录。发布时要么使用mv,也可以重建软链接指向到这个新的临时目录或者新的站点。

3、不方便目录移动,使用ln -s

链接文件企业面试题

描述Linux下软链接和硬链接的区别

1)默认不带参数情况下,ln命令创建的是硬链接,-s参数的ln命令创建的是软链接。

2)硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。

3)ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。

4)删除软链接文件,对源文件及硬链接文件无任何影响;

5)删除文件的硬链接文件,对源文件及链接文件无任何影响;

6)删除链接文件的源文件,对硬链接无影响,会导致其软链接失效(红底白字闪烁状)

7)同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

8)很多硬件设备中的快照功能,使用的就类似硬链接的原理。

9)软链接可以跨文件系统,硬链接不可以跨文件系统。

企业面试答题必胜思路:

1)介绍软硬链接的概论。

2)对于文件的软硬链接区别。

3)对于目录的软硬链接区别。




      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1734101,如需转载请自行联系原作者





相关文章
|
4天前
|
Ubuntu 安全 Linux
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
36 1
|
11天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
52 2
|
2天前
|
资源调度 JavaScript Ubuntu
Linux系统之部署briefing视频聊天系统
【4月更文挑战第21天】Linux系统之部署briefing视频聊天系统
26 2
|
3天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0
|
7天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
1月前
|
Linux Windows
Linux 软链接与硬链接
创建软链接 软链接是一个指向另一个文件或目录的引用,类似于Windows系统中的快捷方式。 ln -s [目标文件路径] [链接文件名] 例如,要在当前目录下创建一个名为link_file的软链接,指向/home/user/desktop/link,可以执行以下命令 ln -s /home/user/desktop/link link_file 这将创建一个软链接link_file,它实际上是指向/home/user/desktop/link的引用。
34 1
|
6月前
|
Linux 测试技术 索引
软件测试|Linux基础教程:ln命令与软链接和硬链接
软件测试|Linux基础教程:ln命令与软链接和硬链接
63 0
|
Linux 索引 Windows
Linux系统中“软链接”和“硬链接”的区别
Linux系统中“软链接”和“硬链接”的区别
104 0
|
测试技术 Linux
Linux中软链接与硬链接详细解读
本篇内容出自tiansir.com  原创 2017-12-8 目标: 1.测试环境模拟 2.软链接特性 3.硬链接特性 4.总结 1.测试环境模拟 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@localhost home]# mkdir test .
1736 0