Linux学习(一):软链接和硬链接
今天起,决定开始自学Linux命令及Shell脚本,并用Linux学习(命令行,Shell及其他知识点)这一系列记录下自己的心路历程,内容不分先后,只记录自己觉得有必要的,简单的就不记了!
第一个知识点:硬链接和软链接
一、链接的定义:在linux中,如果要维护同一份文件的两份或多份副本,除了保存多份单独的物理副本之外,还可以使用只保存一份物理副本和多份虚拟副本的方式,这种虚拟的副本就称之为链接。---《Linux命令行与脚本大全》
上面的解释来自书本,可以说是解释的很清楚了,按照我自己的理解就是:在linux系统中,如果要备份某个文件,除了复制一份原文件之外,还能使用虚拟文件的方式,相比window而言,确实是多了一种方式,因为windows中
我们通常是使用复制原文件的方式来备份文件。可是如果仅仅看这个解释,我还是不太明白这个虚拟是什么意思,它到底和物理副本有什么区别?通过一番测试和调研后得出如下结论:
链接又分为软链接和硬链接:
1、硬链接:硬链接相当于复制了一份原文件,它和原文件一模一样,包括文件索引节点号,所以它会占用存储空间,如果原文件被删除,它依然存在;
2、软链接:软链接只是创建了一个指向原文件的指针,它有新的文件索引节点号,不会占存储空间,如果原文件被删除,它也会失效;
共同点:当改变原文件内容的时候,链接文件的内容也会被同步修改;
二、命令介绍
创建链接文件的方式有两种,一种是cp命令(复制),一种是ln命令(链接),两种都能实现,从cp我们就能知道,链接其实是备份文件的的一种形式(个人观点!)
cp命令:
创建硬链接:cp -l src des
创建软链接:cp -s src des
ln命令:
创建硬链接:ln src des
创建软链接:ln -s src des
这里需要说一下自己学习过程中的一些心路历程:刚开始创建链接的时候搞不清楚src和des,不知道到底是给哪个文件创建一个副本,传参数的时候src和des到底哪个才是创建之后的文件,主要是因为没有系统的看书,
只是从别人的博客中看,所以直到看了书才明白,src和des的意思是,给源文件src创建一个副本des,所以在传这两个参数的时候,如果两个文件不在同一个目录,我们也可以连同文件所在的目录一起传入,这个地方
真是被自己的悟性蠢哭了呀!!!
三、命令实战
上面是对基本概念的解释,也是必备的理论部分,下面是实践部分,说的对不对,用命令验证一下不就见分晓了吗?
说了使用方式,下面直接上命令吧:我以ln命令为例,cp只要注意参数就行,不举例说明!
1、创建一个空文件作为源文件

2、给srcfile.txt创建一个硬链接

创建硬链接desfile1.txt后发现这两个文件的文件索引值是一样的,说明它们是完全相同的两个文件。
3、给srcfile.txt创建一个软链接

可以看出软链接文件的文件类型为l,且后面的表现形式也不一样,有一个->这样的符号指向源文件,且索引值也与源文件不一致,并且是新分配的!
这就验证了链接定义中所说的!
4、修改源文件内容查看硬链接文件和软链接文件的内容

从上面的实践可以看出,当源文件内容修改之后,对应的软链接文件和硬链接文件的内容也一并修改了!
5、删除源文件,查看链接文件

从上面的例子可以看出:当删除源文件之后,硬连接的文件依然存在,且有效,内容也能查看,但是软链接的文件失效,查看内容时会提示找不到文件!
这是不是验证了链接定义中的内容!!!
6、将源文件再次创建

从上面的例子可以看出:当我新建一个软链接指向的文件之后,软链接文件恢复,且指向新的文件,同时文件内容也会随着新文件的改变而改变,但是原来的硬链接文件还是删除文件的副本,并不是新建文件的副本。
所以说软链接会随着它所指向的那个文件的改变而改变,只要指向的文件名不变,即便删除再新建也会使其有效,只要文件名存在即可:
但是硬链接就是源文件的一个物理副本,如果原文件被删除,它依然有效,新建一个一模一样的文件,它依然是最原始的源文件;
由此可以看出,这个软链接确实有点花心啊,就像某些男生找女朋友,分了一个觉得自己死了,再找到一个又活过来了,不想硬链接,找到一个就这一直到天荒地老!哈哈~~
好了,对于软链接和硬链接的介绍就到这里,同样的可以用cp命令实现哦!!
Linux学习(一):软链接和硬链接的更多相关文章
- Linux学习笔记 软链接和硬链接
Linux 中,"everything is file".接下来给大家介绍 linux 如何通过链接,达到节省磁盘空间.共享文件等目的.链接文件有两种方式,软链接(soft lin ...
- 深入解读键值产生原理,linux中的软链接和硬链接(转)
键值 = 文件标示符 + 项目ID 当用到进程间的通信时, 必须要注意到的是键值是怎么产生的,我们知道任何一个文件时通过文件名来访问的, 而内核在对应的给其一个值,也就是文件标示符. 系统建立IPC通 ...
- 2017-7-18-每日博客-关于Linux下的软链接和硬链接.doc
ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...
- Linux常用基本命令(软链接与硬链接 )
硬链接:相当于文件的多个入口,作用:备份文件,创建快照等 软链接:相当于windows的快捷方式 命令格式: ln option 源文件 目标文件 -s: 创建软链接 1,创建硬链接: ghostwu ...
- Linux文件的软链接和硬链接
1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link).还有一种被称为符号链接(Symbolic Link).默认情况下.ln命令产生硬链接. 1.1索引节点 索引节点是 ...
- Linux中的软链接与硬链接
软链接相当于windows的快捷方式,当源文件不存在时,软链接失效. 链接是指向文件名,当指向的文件名字删除的时候,就找不到源文件了.硬链接是指向文件本身,删除一个文件名字,还是可以找到源文件的.ls ...
- linux下的软链接与硬链接
在 Linux 底下的连结档有两种,一种是类似 Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录);这种链接称为软链接. 另一种则是透过文件系统的 inode 连结来产生新档 ...
- linux 创建软链接和硬链接
Linux 系统中有软链接和硬链接两种特殊的“文件”. 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录. 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案. ...
- Linux 软链接和硬链接的理解与学习
理解前提: 首先要知道 Linux任意一个文件包含2个信息:第一个信息就是文件本身存的内容,第二个信息是文件的控制信息(读写,路径,大小等等),这2个信息是分开存储的,明白这点非常重要 理解总结: L ...
随机推荐
- Type.GetType(string.contains(','))
例如 Type type = Type.GetType("ACalCoreServiceLib.BaseService,ACalCoreServiceLib"); 里面的ACalC ...
- 你必须知道的.NET Day1
- python requests 高级用法
高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...
- CSS - 选择器相关
1. 标签选择器 /* 标签选择器 : 会将样式作用在当前网页所有的指定标签上 标签名 { 样式名1: 样式值1; 样式名2: 样式值2; ...... } */ table { width: 300 ...
- System.Web.Mvc.HttpStatusCodeResult.cs
ylbtech-System.Web.Mvc.HttpStatusCodeResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutra ...
- 5行代码怎么实现Hadoop的WordCount?
初学编程的人,都知道hello world的含义,当你第一次从控制台里打印出了hello world,就意味着,你已经开始步入了编程的大千世界,这和第一个吃螃蟹的人的意义有点类似,虽然这样比喻并不恰当 ...
- VC++中文件读写汇总
1,读 A法: CString strFileName = "C:\\dd.txt"; std::ifstream in; std::locale::global(std::loc ...
- javascript执行上下文和变量对象
执行上下文(execution context): 执行上下文就是当前 JavaScript 代码被解析和执行时所在环境的抽象概念. js语言是一段一段的顺序执行,这个“段”其实就是我们说的这个执行上 ...
- 19-10-17-T
真的T了.(滑稽 Final 35 Miemeng 100 03:12:51 0 03:12:54 15 03:12:55 115 03:12:55 幸好$T1$还能要,不然就…… 前言 中午$\sc ...
- 工控安全入门(六)——逆向角度看Vxworks
上一篇文章中我们对于固件进行了简单的分析,这一篇我们将会补充一些Vxworks的知识,同时继续升入研究固件内容. 由于涉及到操作系统的内容,建议大家在阅读本篇前有一定操作系统知识的基础,或者是阅读我的 ...