一、Linux连接文件
Linux下有两种连接文件:符号连接(软连接)和硬连接;
符号连接类似Windows下的快捷方式。
硬连接通过文件系统的 inode 连接来产生新文件名,而不是产生新文件
inode:记录文件属性,一个文件一个inode,inode相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容
二、ln命令
ln命令用于创建连接文件:
ln 【选项】 源文件 目标文件
选项:
-s 创建符号连接(软连接)
-f 强制创建连接文件,如果目标存在,先删除目标文件再重新创建连接文件
啥也不加 创建硬连接
三、硬连接
硬链接是多个文件都指向同一个inode
- 具有相同inode的多个文件互为硬连接文件,创建硬连接相当于文件实体多了入口
- 对于硬连接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才能够被删除
- 根据硬连接文件的特点,我们可以通过给文件创建硬连接的方式来防止文件被误删除
- 不论修改源文件还是连接文件,另一个文件的数据都会被改变
- 硬连接不能跨越文件系统
- 硬连接不能连接到目录
因为以上原因,硬连接不常被使用
四、软连接
符号链接类似于Windows下的快捷方式,符号连接也叫软连接,软连接用的多。符号连接相当于创建了一个独立的文件,这个文件会让数读取指向它连接的文件的文件名
软连接的特点:
- 可以连接到目录
- 可以跨文件系统
- 删除源文件以后,软连接文件也打不开了
- 符号链接文件通过->来指示具体的连接文件
符号连接要使用绝对路径,否则当文件移动时,就会出现问题
拷贝一个目录时,一定要cp -d xxx 才表示将里面的连接文件一起拷贝过去了,但此时软连接必须是绝对路径
如果直接拷贝目录,软连接也是相对路径,那么会自动创建一个源文件,会占用内存