Linux中的硬链接与软链接?
硬链接:在一个文件里面,对于目录来说,记录着文件的名字和inode号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号,是文件的唯一标识),我们也可以在多个目录里记录相同的inode号,它们的名字不一定相同,但只要inode号一样就行,它们最终都链接到一个文件里,这就是硬链接。也就是说,当文件的硬链接数被目录记录了一次,文件的硬链接数就增加了一次。所以,文件只要在目录里存在,它就至少有一个硬链接。
硬链接 ln 源 新文件 一旦创建成功,则没有源和目的文件关系 (硬链接里面不分主次关系)一个文件,只有硬链接为0时才是彻底删除。
[root@Centos6 kobe]# ls
curry qjc
[root@Centos6 kobe]# ln qjc a
[root@Centos6 kobe]# ln a b
[root@Centos6 kobe]# ls -li
total 0
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 a
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 b
791545 -rw-r--r--. 1 root root 0 Jul 17 15:35 curry
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# rm -f b
[root@Centos6 kobe]# ls -li
total 0
791533 -rw-r--r--. 2 root root 0 Jul 17 15:28 a
791545 -rw-r--r--. 1 root root 0 Jul 17 15:35 curry
791533 -rw-r--r--. 2 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]#
硬链接必须在相同的分区下(因为别的分区有自己inode,虽然文件可以在不同的分区下存在,但是inode号一样,并不占用别的分区的inode,只是在目录里加了一个条目,文件还是同一个。)不能跨分区创建
[root@Centos6 kobe]# ln a /boot/qjc
ln: creating hard link `/boot/qjc' => `a': Invalid cross-device link
[root@Centos6 kobe]#
硬链接不能对目录创建(因为引入了对目录的硬连接就有可能在目录中引入循环,在目录遍历的时候系统就会陷入无限循环当中,这样导致无法定位到访问目录) 目录的硬链接数包含目录自身的名字,以及.和子目录里的..
791422 drwxr-xr-x. 2 root root 4096 Jul 17 14:08 Downloads
786435 -rw-r--r--. 1 root root 50698 Jul 17 2018 install.log
786436 -rw-r--r--. 1 root root 10031 Jul 17 2018 install.log.syslog
791541 drwxr-xr-x. 2 root root 4096 Jul 17 15:35 kobe
791426 drwxr-xr-x. 2 root root 4096 Jul 17 14:08 Music
791427 drwxr-xr-x. 2 root root 4096 Jul 17 14:08 Pictures
791424 drwxr-xr-x. 2 root root 4096 Jul 17 14:08 Public
791423 drwxr-xr-x. 2 root root 4096 Jul 17 14:08 Templates
791428 drwxr-xr-x. 2 root root 4096 Jul 17 14:08 Videos
[root@Centos6 ~]#
所以目录的子目录数=(链接数-2)
软连接(符号链接):软连接是一个文件,只不过文件里存放的是别的文件的路径,软连接是一个单独文件,软连接可以通过路径访问源,如果源没了,软连接开始闪烁,找不到源,
软链接创建方式
ln -s 源文件 目的文件 快捷方式 (wimdows) 软链接可以跨分区 可以相对路径 ,也可以绝对路径 在创建相对路径时,推荐进入到最终目录,再创建 删除源,软链接不可用
[root@Centos6 kobe]# ln -s curry ali
[root@Centos6 kobe]# ls
a ali curry qjc
[root@Centos6 kobe]# ls -l
total 0
-rw-r--r--. 3 root root 0 Jul 17 15:28 a
lrwxrwxrwx. 1 root root 5 Jul 17 16:21 ali -> curry
-rw-r--r--. 1 root root 0 Jul 17 15:35 curry
-rw-r--r--. 3 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]#
软硬链接的作用:
硬链接:硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。只删除一个连接并不影响节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接:
软链接又称之为符号连接。软链接文件类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
- iOS缓存 NSCache详解及SDWebImage缓存策略源码分析你要知道的NSCache都在这里
- freeRTOS信号量学习
- 微信扫码支付+Asp.Net MVC
- Linq中连接主要有组连接、内连接、左外连接、交叉连接四种
- 深入源码理解YYCache 、SDWebImage、AFNetworking、NSCache 缓存方式与对比
- Linq Like的操作
- iOS网络——AFNetworking AFURLSessionManager源码解析
- 1692: [Usaco2007 Dec]队列变换(BZOJ1640强化版)
- 1620: [Usaco2008 Nov]Time Management 时间管理
- 手把手教你树莓派linux内核如何编译
- js处理异常try{}catch(e){}
- 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- C#用链式方法表达循环嵌套1
- C#用链式方法表达循环嵌套2
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 性能分析(1)- Java 进程导致 CPU 使用率升高,问题怎么定位?
- 安全服务之安全基线及加固(三)Apache篇
- 使用docsify来管理文献
- Cypress系列(41)- Cypress 的测试报告
- SSRF绕过
- 性能测试必备知识(6)- 如何查看“CPU 上下文切换”
- flex布局 div盒子居中
- 使用Apple Configurator 2提取商店ipa or app文件
- Spring 自动装配模式之byType
- 使用ATOMac进行Mac自动化测试
- 【赵渝强老师】什么是Oracle的数据字典?
- antd 如何在 src目录下 引入 Public 目录下的文件
- (精编)Python与安全(三)SSTI服务器模板注入
- 一年经验Java开发0713面试
- 【分享】MicroBlaze大内部存储器(AXI BRAM)设计