Linux 软硬链接详解
软链接
软链接: 类似于windows的快捷方式,—>文本文件,但是包含了真实文件的地址
源文件删除,则软连接也删除
软链接可以放在任何文件系统
目录可以创建软连接 --> 和源文件不同的文件,因为软连接目录可以放在任何地方
命令:[root@localhost omc]# ln -s ftl/ ftl.soft (第一个参数表示源文件,inittab.soft表示快捷方式)
查看:[root@localhost omc]# readlink ftl.soft (目标文件不能事先存在,需要ln命令创建)
删除软连接::[root@localhost omc]# rm -f oldboy_soft_link

硬链接
硬链接:硬链接(Inode一致)与真实文件的大小和创建日期完全相同(相同inode号),类似于copy,同步更新。
通过inode索引链接,硬链接多个文件名指向同一个索引,相当于文件的入口,硬链接一个文件有多个入口,相当于文件备份
原理:通过命令ls –i ,发现硬链接文件和源文件的i结点数字相同,而内核是根据文件的i结点来标识文件的,这两个文件的i结点相同,所有被认为是一个文件,所有同时写入和修改数据。
硬链接不能跨文件系统,即不能跨分区,类似于windows内不能将C盘的硬链接放在D盘。
与拷贝区别:拷贝与真实文件的创建日期不同
硬链接属于复制,源文件删除不影响硬链接
当所有的硬链接和源文件被删除之后,再放入新的数据占用此空间、磁盘检测,删除的数据会被回收
可以通过设置硬链接,防止文件被误删除
注意目录不做硬链接
命令: ln /etc/inittab /test/inittab.hard
查看: ls -l /etc/inittab /test/inittab.hard
查看所有文件的inode: find / -type f | xargs ls -lhi | more
文件链接
文件链接的小结:
-1.ln 默认不带参数到的情况下,创建硬链接, -s 表示创建软连接
0.软连接可以通过readlink 查看其指向
1.删除软连接对原文件和硬链接文件无影响
2.删除硬链接对源文件和软连接文件无影响
3.删除原文件,对硬链接没影响,但是会导致软连接失效
4.同时删除源文件,硬链接,会导致整个文件被删除(没有后台进程调用的话)
5.硬件设备的拍照功能就是应用了硬链接的原理
6.硬链接和源文件有相同的inode,可以认为是同一个文件或者是同一个文件的多个入口
7.同时删除硬链接以及源文件,整个文件才会被删除
8.软连接和源文件有不同的inode,是因为创建了2个不同的文件,相当于快捷方式,还有源文件的位置指向
9.软连接是一个新文件,里面记录了原文件的路径,软连接的名称必须由ln创建,不能事先存在
目录链接
目录链接的小结:
1.对于目录,不能创建硬链接,可以创建软连接
默认为2【
1.创建的目录本身为一个硬链接。
2.新目录ett下的隐藏目录.(点号)为创建的新目录的又一个硬链接,也算一个链接数
因此,硬链接数是2】
硬链接不能跨文件系统 (如果2个文件系统的时候,inode会不一样,所以不允许)
2.对于目录可以创建软连接,因为软连接可以跨系统,相当于目录的快捷方式,有一个新的inode
3.目录的硬链接不能跨越文件系统(硬链接原理上)
4.每个目录下面有一个硬链接符号 . ,和对应上级目录的硬链接 ..
5.在父目录里面创建一个子目录,父目录的链接数目增加1(多了一个..来指向父目录)
但是创建文件,链接数目不会增加(文件内不会有..来指向上层目录)
Linux 软硬链接详解的更多相关文章
- Linux ll查看文件属性详解-软硬链接详解
Linux文件属性及类型 [root@localhost ~]# ll anaconda-ks.cfg 文件类型 权限 硬连接数 文件的大小 文件的创建,修改时间 - rw-------. 1 roo ...
- linux ln链接详解
1.序 Linux具有为一个文件起多个名字的功能,称为链接.被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份.另外,被链接的文件也可以有相同的文件名,但是 ...
- linux c 链接详解3-静态库
3静态库 摘自:Linux C编程一站式学习 透过本节可以学会编译静态链接库的shell脚本! 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程 ...
- linux c 链接详解4-共享库
4. 共享库 4.1. 编译.链接.运行 组成共享库的目标文件和一般的目标文件有所不同,在编译时要加-fPIC选项,例如: $ gcc -c -fPIC stack/stack.c stack/pus ...
- linux c 链接详解1-多目标文件链接
1. 多目标文件的链接 摘自:linux c编程一站式学习 http://learn.akae.cn/media/index.html 可以学会在linux下将多个c语言文件一起编译. 现在我们把例 ...
- linux c 链接详解2-定义和声明
2定义和声明 摘自:linux c编程一站式学习 可以学会extern和static用法,头文件知识. 2.1. extern和static关键字 在上一节我们把两个程序文件放在一起编译链接,main ...
- linux c 链接详解5-虚拟内存管理
5. 虚拟内存管理 我们知道操作系统利用体系结构提供的VA到PA的转换机制实现虚拟内存管理.有了共享库的基础知识之后,现在我们可以进一步理解虚拟内存管理了.首先分析一个例子: $ ps PID TTY ...
- Linux 链接详解----静态链接实例分析
由Linux链接详解(1)中我们简单的分析了静态库的引用解析和重定位的内容, 下面我们结合实例来看一下静态链接重定位过程. /* * a.c */ ; void add(int c); int mai ...
- 【初级】linux rm 命令详解及使用方法实战
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就 ...
随机推荐
- springboot-8- 日志配置
1, logback配置 springboot 默认支持logback, 自动加载classpath:logback-spring.xml <!-- logback多文件输出 --> &l ...
- 使用Visual Studio Code搭建PHP调试环境
1.需要安装的软件 Visual Studio Code. WAMP(包括Apache.MySQL.PHP.以及最关键的XDebug) 2.下载软件 Visual Studio Code,光看名字就知 ...
- Linux中终端和控制台的一些不成熟的理解
首先声明,这仅仅是在下一些不成熟的想法.是通过看网上的一些资料和自己实践的一些心得,应该都是些很不成熟甚至是不太正确的想法.但是我还是想记录下来,算是一个心路历程吧.等以后成熟了,再来修改. 首先说一 ...
- 功能------常用快捷键(在win10下)
功能------win10 常用快捷键 在进行学习,记录,编写代码时,需要用到一些功能,用鼠标浪费时间,可以使用快捷键来快速的处理.方便操作. 以下内容分为两类.快捷键以及触控板类(不能享用鼠标) 快 ...
- mysql与mysqli的一些区别和方法
一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库 ...
- DedeCMS修改管理员用户名
织梦内容管理系统(DedeCMS) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有 ...
- MySQL 中文未正常显示
关于MySQL中文乱码问题 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码: 之所以会显示乱码,就是因为MySQL客户端输出窗口显示中文时使用的字符编码不对 ...
- Unity3d之MonoBehavior自带方法的执行顺序
首先贴一张图(从其他地方摘录的,不记得出处,如果有小伙伴知道可以评论留言) 看了以后脑子有个大概的概念,可还是一知半解的感觉(接触Unity也有2年之久,却从来没想过弄清楚心中这团迷雾,总是囫囵吞枣用 ...
- [合集]解决Python报错:local variable 'xxx' referenced before assignment
a = 1 def use(): print(a) #输出1 引用不会报错 a = 1 def use(): a = 3 print(a) #输出 3 重新赋值也不会报错. 局部变量会优先在函数内部去 ...
- BZOJ4466 [Jsoi2013]超立方体
Description 定义"超立方图"为:有\(2^k\)个点,以\(k\)位二进制数编号,两个点之间有边当且仅当它们的编号恰有一位不同.给出一个图,问它是否与"超立方 ...