Linux 软连接和硬链接
最近有些懈怠,有段时间没写博客了,还是歹坚持下去💪
Linux 引入了目录 (有时亦被称为文件夹)这一概念,目录使文件可被分类管理,且目录的引入使 Linux 的文件系统形成一个层级结构的目录树。
- # Linux 系统的顶层目录结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/ 根目录 ├── bin 存放用户二进制文件 ├── boot 存放内核引导配置文件 ├── dev 存放设备文件 ├── etc 存放系统配置文件 ├── home 用户主目录 ├── lib 动态共享库 ├── lost+found 文件系统恢复时的恢复文件 ├── media 可卸载存储介质挂载点 ├── mnt 文件系统临时挂载点 ├── opt 附加的应用程序包 ├── proc 系统内存的映射目录,提供内核与进程信息 ├── root root 用户主目录 ├── sbin 存放系统二进制文件 ├── srv 存放服务相关数据 ├── sys sys 虚拟文件系统挂载点 ├── tmp 存放临时文件 ├── usr 存放用户应用程序 └── var 存放邮件、系统日志等变化文件 |
Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件
- Win 文件:文件名与数据
- Linux 文件:用户数据 (user data) 与元数据 (metadata)。
- 用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
- 元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息
元数据包含 : inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号),linux中inode 号才是linux文件的标识
文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块
说了这么多 别说你们了 我自己头都大了 那么 # linux为什么要使用软连接和硬链接??
为解决文件的共享使用
硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。
链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。
#什么是硬链接??
若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名
# 什么是软链接??
删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
see also https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html#fig1
#拓展二进制
为什么要使用二进制文件。原因大概有三个:
- 第一是二进制文件比较节约空间,这两者储存字符型数据时并没有差别。但是在储存数字,特别是实型数字时,二进制更节省空间,比如储存 Real*4 的数据:3.1415927,文本文件需要 9 个字节,分别储存:3 . 1 4 1 5 9 2 7 这 9 个 ASCII 值,而二进制文件只需要 4 个字节(DB 0F 49 40)
- 第二个原因是,内存中参加计算的数据都是用二进制无格式储存起来的,因此,使用二进制储存到文件就更快捷。如果储存为文本文件,则需要一个转换的过程。在数据量很大的时候,两者就会有明显的速度差别了。
- 第三,就是一些比较精确的数据,使用二进制储存不会造成有效位的丢失。