🍖软连接与硬链接

引入

1.硬链接与软连接

Linux 系统中有软链接和硬链接两种特殊的 "文件"

2.inode是什么

⛅要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西

⛅当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区data block(实际数据放置在数据区域中)

⛅这个inode即是(目录、档案)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个 文件的 inode

⛅Inode 里面存储了文件的很多重要参数,其中唯一标识称作 Inumber

⛅ 其他信息: 创建时间(ctime)、修改时间(mtime) 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息。

⛅查看一个文件的元数据: "# stat [文件名]"

一.软连接

1.什么是软链接

可以看成是 Windows 中的快捷方式, 可以让你快速链接到目标文件或目录, 它找到的是原文件名, 通过原文件名再找到真实的数据, 它自身有 inode

2.语法

ln -s [源文件/目录路径] [软连接放置的路径及名字]
#设置连接时源文件要使用绝对路径, 不然链接会变红,无效

3.软连接示例

  • 文件软连接
在 "/tmp" 目录下创建 "/root" 目录下的 "a.txt" 软连接

  • 目录软连接
在 "/tmp" 目录下创建 "/root" 目录下的 "/song" 的软连接

二.硬链接

1.什么是硬链接

它透过文件系统的 inode 来产生新的文件名, 注意不是产生新的文件, 换而言之, 就是一个文件使用了多个别名, 这个别名与源文件名都指向源文件的 inode

2.语法

ln [源文件路径] [硬连接放置的路径及名字]
#目录不能创建硬链接
#不能跨分区系统创建硬链接

3.硬链接示例

  • 文件硬链接
在"/tmp"目录下创建"/root"目录下的"a.txt"的硬链接

  • 无法创建目录硬链接

三.硬链接与软连接的区别

🐼 ln -s 创建软连接, ln 创建硬链接

🐼 目录不能创建硬链接, 且不能跨分区系统创建

🐼 软连接支持文件和目录, 且能跨分区系统, 常用

🐼 硬链接文件与源文件 inode 相同, 而软连接是不同的

🐼 删除软连接文件和硬链接文件, 对源文件没有任何的影响

🐼 删除源文件, 软连接失效, 硬链接无影响(还可以访问内容)

🐼 删除源文件和硬链接, 整个文件会被真正的删除

四.软连接, 硬链接与 拷贝 的区别

1.软连接

软连接建立的链接文件与源文件并不是同一个文件, 就是一个快捷方式, inode号也不同

2.硬链接

硬链接实际上是文件的一个别名, 链接文件和源文件实际上是同一个文件, 修改源文件或者硬链接文件, 相互都会改变

3.拷贝

复制源文件, 产生一个全新的文件, 与源文件没有关系了, 修改新文件内容与源文件无关

4.通过 ls -i 来查看 inode

查看 inode 可判断是否是同一文件

五.磁盘空间问题

1.磁盘满了?

通常指两个方面

  • inode 号用完了
  • 磁盘空间用完了
  • 而通常情况下 inode号是够用的, 磁盘空间经常不够用

2.当指定磁盘空间满了怎么办?

  • df 查看磁盘空间及 inode号使用情况

  • 假设 /boot 这个目录关联的磁盘 /dev/sda2空间使用已被使用100%
  • 当你创建文件和写文件的时候都无法操作
  • 但是有一些软件或者配置必须在 /boot/data 下才能找到(或者"/boot"下的其他目录)

3.解决方案

  • 首先插上一块新的磁盘, 查看磁盘是否存在

  • 不格式化(制作文件系统)的话可能会报错

  • 格式化新磁盘(制作文件系统) mkfs.xfs /dev/sdb / mkfs.ext4 /dev/sdb

  • 然后让 /boot/data关联(挂载)上去 mount /dev/sdb /boot/data

  • 之后就可以在 /boot/data 里面写文件了, 路径还是这个路径
posted @ 2020-10-27 11:15  给你骨质唱疏松  阅读(194)  评论(0编辑  收藏  举报