欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux连接档

程序员文章站 2024-02-28 08:55:22
...

Linux下的连接档种类

  一个是类似于win的快捷方式,我们成为”软连接“,一种是通过文件系统的inode连接来产生的,类似于win电脑的复制,但是不产生新的文件,我们成为”硬连接“,也可以叫“实体连接”。

什么是inode?

  inode也叫索引节点,是用来存放文件信息的,每个文件都会占用一个inode,并且这个inode号是唯一的,文件的内容都是inode来指定的,而不是文件名。
  当系统要访问文件时,inode就会被复制到内存,从而实现文件的快速访问,使用ls -i命令则可以看到inode号,-i参数是打印文件的inode号:

-i, --inode                print the index number of each file

软硬链接的区别

硬链接(hard link):
  A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。
  如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

硬链接的好处:

  1. 安全,删除其中一个,只要链接数不为0,就不影响对应的数据块的存在;
  2. 不占用实际空间,且修改一个就会自动修改另外一个;
  3. 可以利用安全性做文件的备份(防止误删)。

缺点:

  1. 只能在同一个文件系统下创建硬链接;因为不同的文件系统的管理方式不同,有些文件系统不是索引文件系统;或者即使是索引文件系统,它们同一个inode也可能对应不同的数据块。
  2. 目录之间不能创建硬链接。(太复杂了,现在还不支持)

软链接(soft link):
  A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。
  但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

优点:用途广泛
缺点:安全性相对较差

如何创建硬链接?

  可以用ln命令来创建硬连接。

Usage: ln [OPTION]... [-T] TARGET LINK_NAME
  or:  ln [OPTION]... TARGET
  or:  ln [OPTION]... TARGET... DIRECTORY
  or:  ln [OPTION]... -t DIRECTORY TARGET...
In the 1st form, create a link to TARGET with the name LINK_NAME.
In the 2nd form, create a link to TARGET in the current directory.
In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.
	一般来说,命令格式为:
		ln 源文件 目标文件
	常用参数
		-f	强制创建,不管目标文件(链接)是否已存在

如何创建软链接?

  使用ln -s,带上-s参数即可。但是此时要注意源文件应该用绝对路径,否则创建后如果需要移动软链接文件或者源文件,链接就会失效(因为相对路径创建的软链接,与源文件的链接是继续相对路径的,必须相对位置时,链接才有效)。

ln -s 绝对路径下的源文件 绝对路径下的软链接文件
	创建后,使用ls -li 查看,发现链接文件和源文件的inode不同,且链接文件的文件类型是"l"

Linux连接档

Ubuntu系统中各个文件的颜色意义:

颜色 类型 对应的符号
深 蓝 色 \color{#0000CF}{深蓝色} 文件夹 d(document)
红 色 \color{#FF0000}{红色} 压缩文件 -
绿 色 \color{#005F00}{绿色} 绿 可执行文件 -
白 色 \color{#000000}{白色} 文本文件 -
红 色 闪 烁 \color{#FF0000}{红色闪烁} 错误的符号链接 l
蓝 绿 色 \color{#00AF9F}{蓝绿色} 绿 符号链接 l
黄 色 \color{#AA9A00}{黄色} 设备文件 c
灰 色 \color{#AAAAAA}{灰色} 其他文件 -
相关标签: Linux linux