今天起,决定开始自学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学习(一):软链接和硬链接的更多相关文章

  1. Linux学习笔记 软链接和硬链接

    Linux 中,"everything is file".接下来给大家介绍 linux 如何通过链接,达到节省磁盘空间.共享文件等目的.链接文件有两种方式,软链接(soft lin ...

  2. 深入解读键值产生原理,linux中的软链接和硬链接(转)

    键值 = 文件标示符 + 项目ID 当用到进程间的通信时, 必须要注意到的是键值是怎么产生的,我们知道任何一个文件时通过文件名来访问的, 而内核在对应的给其一个值,也就是文件标示符. 系统建立IPC通 ...

  3. 2017-7-18-每日博客-关于Linux下的软链接和硬链接.doc

    ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...

  4. Linux常用基本命令(软链接与硬链接 )

    硬链接:相当于文件的多个入口,作用:备份文件,创建快照等 软链接:相当于windows的快捷方式 命令格式: ln option 源文件 目标文件 -s: 创建软链接 1,创建硬链接: ghostwu ...

  5. Linux文件的软链接和硬链接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link).还有一种被称为符号链接(Symbolic Link).默认情况下.ln命令产生硬链接. 1.1索引节点 索引节点是 ...

  6. Linux中的软链接与硬链接

    软链接相当于windows的快捷方式,当源文件不存在时,软链接失效. 链接是指向文件名,当指向的文件名字删除的时候,就找不到源文件了.硬链接是指向文件本身,删除一个文件名字,还是可以找到源文件的.ls ...

  7. linux下的软链接与硬链接

    在 Linux 底下的连结档有两种,一种是类似 Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录);这种链接称为软链接. 另一种则是透过文件系统的 inode 连结来产生新档 ...

  8. linux 创建软链接和硬链接

    Linux 系统中有软链接和硬链接两种特殊的“文件”. 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录. 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案. ...

  9. Linux 软链接和硬链接的理解与学习

    理解前提: 首先要知道 Linux任意一个文件包含2个信息:第一个信息就是文件本身存的内容,第二个信息是文件的控制信息(读写,路径,大小等等),这2个信息是分开存储的,明白这点非常重要 理解总结: L ...

随机推荐

  1. 使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置

    1.使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置 2.上代码:在resources目录下新建:generatorConfiguration.xml文 ...

  2. x64:x64

    ylbtech-x64:x64 “x86-64”,有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的延伸产品.“x86-64”1999由AMD设计,AMD首 ...

  3. PAT甲级——A1008 Elevator

    The highest building in our city has only one elevator. A request list is made up with N positive nu ...

  4. 《DSP using MATLAB》Problem 8.22

    时光飞逝,亲朋会一个一个离我们远去,孤独漂泊一阵子后,我们自己也要离开, 代码: %% -------------------------------------------------------- ...

  5. 全面解析Spring中@ModelAttribute注解的用法

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:全面解析Spring中@ModelAttribute注解的用法: @ModelAttribute注解用于将方法的参数或方法的返回值绑定到 ...

  6. 左神算法书籍《程序员代码面试指南》——1_08构造数组的MaxTree

    [题目] 将一个没有重复数字的数组中的数据构造一个二叉树 每个节点都是该子树的最大值 [要求] 时间复杂度为O(N)[题解] 使用单调栈,栈的顺序是维持从大到小排序 通过使用单调栈,将数组中中所有数的 ...

  7. 记一次msf入侵win10,并拍照

    好久没有玩kali了,刚才看到一位大佬msf渗透win10的思路,我感觉不错,我就来复现一下 kali :192.168.45.136 win10 : 192.168.45.137 1  首先,我们查 ...

  8. 【DM8168学习笔记4】ezsdk安装过程记录

    安装文件 ezsdk_dm816x-evm_5_05_02_00_setuplinux DM8168-EZSDK文件结构如图所示.               (图片来自:http://process ...

  9. ubuntu下编译安装poco

    系统环境: ubuntu版本:Linux jfcai-VirtualBox 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 ...

  10. hive-hbase性能问题

    华为负责人本来想用这种表来做大数据开发,先前就听前辈讲过性能存在问题.实际开发过程确实存在不少问题.然后放弃换方案去做了. 1.底层meta映射字段问题.默认4000,如果再做修改会涉及到挺多源码. ...