`

Linux 链接概念

阅读更多

1.Linux链接概念
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

2.通过实验加深理解
[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

3.总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

 

from: http://kb.cnblogs.com/a/1433052/

分享到:
评论

相关推荐

    Linux软连接和硬链接

    1.Linux链接概念  Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。  【硬连接】  硬连接指通过索引节点来进行连接。在Linux的文件...

    Linux编程--Linux内核概念系统结构

    Linux内核概念系统结构 摘要 323 前言 324 第1章 系统结构 325 1.1 系统概述 325 1.2 内核的目标 325 1.3 内核结构的概述 325 1.4 支持多个开发人员 327 1.5 系统数据结构 328 1.5.1 任务列表 328 1.5.2 内存映射 ...

    深入分析Windows和Linux动态库应用异同 动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。

    动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。 但不同操作系统的动态库由于...

    Linux文件系统概念解释

    普通文件、目录文件、连接文件、设备文件、管道文件和套接字文件

    Linux内核概念系统结构

    系统结构 325 1.1 系统概述 325 1.2 内核的目标 325 1.3 内核结构的概述 325 1.4 支持多个开发人员 327 1.5 系统数据结构 328...内存映射 328 1.5.3 索引节点 328 1.5.4 数据连接 329 第2章...

    LINUX操作系统(电子教案,参考答案)

    主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...

    构筑Linux防火墙之IPtables的概念与用法

    这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是RELATED的了,当然前提是conntrack模块要能理解RELATED。ftp是个很好的例子,FTP-data 连接就是和FTP-control有RELATED的。 <br>INVALID <br...

    深入分析Linux内核源码.chm

    9.4 链接文件 9.5 分配策略 第十章 模块机制 10.1 概述 10.2 实现机制 10.3 模块的装入和卸载 10.4 内核版本 10.5 编写内核模块 第十一章 设备驱动程序 11.1 概述 11.2 设备驱动基础 11.3 块设备驱动程序 11.4 字符...

    Linux 基础 89-其他命令-02-文件软链接的概念介绍.flv

    Linux 基础 89-其他命令-02-文件软链接的概念介绍.flv

    linux操作系统IO

    Linux文件概念和模式 文件描述符 基本系统调用 标准I/O库函数 Linux文件系统 文件节点操作 文件目录操作 文件权限控制 文件链接

    Linux的文件链接和ln命令

    简介: Linux强大的文件链接可以让我们轻松做到以下几点: 1、多用户之间的文件共有、数据共享; 2、不同版本的程序环境或数据源...2、文件链接的概念 3、ln 命令 4、文件链接的应用 5、Windows下“目录链接”的实现

    LINUX网站建设技术指南

    5.2 建立PPP连接和配置PPP服务器 5.2.1 有关PPP的基础知识 5.2.2 使用PPP拨号上网 5.2.3 配置PPP服务器 5.3 配置DNS服务器 5.3.1 DNS(Domain Name System)简介 5.3.2 域名服务系统 5.3.3 域名服务器和解析器 5.3.4...

    经典书籍:LINUX系统开发技术详解-基于ARM(PDF)

    本书从概念上阐述了嵌入式Linux系统开发流程,实践上提供了具体的操作步骤,使读者能够深入理解嵌入式Linux系统构建。  本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材...

    Linux运维-运维课程网络基础d1-网络的基本概念06网络设备连接介质.mp4

    Linux运维-运维课程网络基础d1-网络的基本概念06网络设备连接介质.mp4

    从Windows转向Linux教程 V2.0

    Linux最基础的信息,简单的讲述一些Linux基本概念及图文并茂的安装方法,多管齐下助您成功安装Linux。本教程集成四大图解:图形模式安装Linux、文本模式安装Linux、图解显示参数配置、Linux中图解连接ADSL。 <br>

    无线网络连接设置详解Linux

    许多组织实现了无线网络连接。但是由于无线网络是非常新的概念,几乎没有关于这方面设置的详细讨论。在这篇文章里,我们将提供一些技巧帮助您设置客户端和接入结点,讨论无线设备的设置方法和一些标准线路选择对无线...

    Linux C程序设计大全

    3.7.1 可变参数的概念 3.7.2 实现一个简单的可变参数的函数 3.7.3 可变参数实例 3.7.4 关于printf函数的疑问——缺少整型参数 3.7.5 关于printf函数的疑问——缺少字符串地址参数 第4章 C语言中的指针与字符串 4.1 ...

    linux系统编程(中文版)

    第一章 简介和主要概念 1.1 系统编程 1.1.1 系统调用 1.1.2 调用系统调用 1.1.3 C库 1.1.4 C编译器 ... 1.4 Linux编程概念 1.4.1 文件和文件系统 1.4.2 普通文件 1.4.3 目录和链接 1.4.4 硬链接 ......

    Linux编程从入门到精通

    第四部分 Linux内核概念系统结构 摘要 323 前言 324 第1章 系统结构 325 1.1 系统概述 325 1.2 内核的目标 325 1.3 内核结构的概述 325 1.4 支持多个开发人员 327 1.5 系统数据结构 328 1.5.1 任务列表 328 1.5.2 ...

    Linux下的lds链接脚本

    Linux下的lds链接脚本基础,介绍了链接脚本基本概念,基本格式,以及一些例子等等

Global site tag (gtag.js) - Google Analytics