软连接与硬链接

article/2025/10/7 6:50:30

引入

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 里面写文件了, 路径还是这个路径

http://chatgpt.dhexx.cn/article/MQr4E8cO.shtml

相关文章

Linux建立软链接、硬链接

软链接 说明:软链接仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效。 1.软链接,以路径的形式存在。类似于Windows操作系统中的快…

软连接和硬链接

好多人对软件链接,硬链接不清楚,今天给大家介绍一下 一、软链接(Soft Link) 1.释义 又被叫为符号链接(symbolic Link),它包含了到原文件的路径信息。 2.特性 (1)软链…

【DEBUG】phpstudy启动mysql服务时候发现3306端口被占用

点击phpstudy之后启动mysql,发现3306端口被占用。打开sqlectron发现并不是sqlectron占用了端口。在命令行中显示3306端口被占用,试图强行结束该进程,但是失败,原因是拒绝访问。 进入phpstudy的info界面需要用户名和密码&#xff0…

数据库安装处理提示3306端口被占用

数据库安装提示3306端口被占用怎么处理? 方法1: 1、windows命令窗口输入services.msc进入服务管理 2、查找mysql服务,右键停止,即可正常安装。 方法2: 1:进入cmd,查看计算机当前进程&#…

三步简单解决3306端口占用问题(windows)

一、查看占用3306端口的进程 其他端口参照3306netstat -aon|findstr 3306二、记住这个pid号 三、ctrl shiftesc调出任务管理器

解决mysql重装时,3306端口被占用(完整版)

解决方法: 1、打开终端,输入cmd,命令框内输入:netstat -ano 会显示如下图的内容,杀死3306对应端口的进程即可 2、杀死进程操作: taskkill /pid xxx -t -f xxx代表该端口的进程ID,也就是上图中pid一栏 …

查看3306端口被谁占用

今天安装mysql一直有问题,怀疑3306被谁占用了,排查开始: 一: 使用命令符netstat命令查看 netstat -a -n 显示各个端口占用: netstat -ano 显示各个端口占用和进程PID: 二: 使用netstat -aon|findstr "3306"命令查找"3306"端口信息 三: 使用tasklis…

安装MySQL时端口3306被占用,显示红色感叹号的解决办法(2023年,5月)

1、当我们安装MySQL时如果出现如图以下情况,说明端口号3306正在被其他程序占用着。 2、快捷键WinR打开运行窗口输入“cmd”点击【确定】进入命令提示符。 3 、输入命令netstat -aon查看本地地址3306对应的PID是多少。 netstat -aon 4、但是为了节省时间&#xff0c…

查看 Windows 端口被占用情况

查看 Windows 端口被占用情况 背景: 搞个开发配置,时不时就碰到端口被占用的情况windows 命令用得少,想又想不起来,搜又搜不准 查找原理: 通过 CMD 来输入命令优先找到监听端口的进程通过进程找到程序 查找流程&a…

安装mysql3306被占用_安装mysql提示3306端口已经被占用解决方案

今天遇到的问题是这样的,之前已经安装过mysql了,一直用的好好的,但是今天开启服务时报异常,无法启动。为了省事,于是想到卸载重装,在安装的过程中发现3306已经被占用,这也是一开始服务无法启动的原因。看到有人说用fport查看端口号,于是下载了,发现win7用不了(很尴尬啊…

3306端口被占用

winR组合键 -- 输入cmd -- 回车,输入以下命令 显示各个端口使用情况:netstat -a -n 或者 netstat -ano 查看端口被哪个程序占用: netstat -ano|findstr "3306" tasklist|findstr "5340"

安装php环境显示端口被占用,【亲测】启动PHPstudy提醒80、3306端口被占用的2种解决办法_全百科网...

我们在启动PHPstudy应用或者是任意Apache环境的时候经常发现我们需要使用的端口被占用的情况,本文分享经过全百科网实战测试的三种方法解决这个问题,如果通过第一种netstat -ano找不到所占用的端口软件,可直接使用第二、三种方法直接修改端口…

phpstudy mysql3306端口被占用_【亲测】启动PHPstudy提醒80、3306端口被占用的3种解决办法...

我们在启动PHPstudy应用或者是任意Apache环境的时候经常发现我们需要使用的端口被占用的情况,本文分享经过 问题截图 端口占用会出现如下提醒 说明: 80端口负责Apache运行 3306端口负责MySQL运行 当这两个端口被占用时,则不能运行程序 第一种…

phpstudy中80端口和3306端口被占用问题

1. 80端口被占用,使用cmd中netstat -ano查出80端口信息,看到是谁占用,把对应任务关闭即可。 2. 3306端口被占用,原因是phpstudy自带的MySQL端口是3306,而电脑里自己装的MySQL端口也是3306,冲突了&#xff…

mysql3306端口被占用无法终止_Mysql3306端口被占用无法启动解决办法

Mysql3306端口被占用,妙招轻松解决 早晨发现mysql服务器意外停止服务,造成网站无法打开,查看mysql日志(注:该日志在msyql安装目录下data文件夹里,文件名是机器名.err,该文件可用记事本打开)发现如下问题; 120525 3:35:…

xampp中mysql3306端口被占用

xampp,mysql3306端口被占用 Problem:mysql3306端口被占用,根据网上方法,停止服务、更换端口等方法都无法解决。解决方法如下: 下图是已解决的 Solution Step1:winR,输入regedit,…

重装mysql时3306端口被占用解决方法

如果在安装mysql中出现3306端口不能使用,已经被占用的过程 则需要将该端口号的进程释放即可 根据该思路我们只需要找到该3306的进程号并且消灭进程即可 根据解决思路 方法前言 运行cmd命令消灭进程需要在管理员方式下运行 否则会出现不给消灭不给权限的问题 类似这…

phpstudy 2016显示80 3306端口被占用如何解决?

报错截图 原因分析:80 3306端口被占用 解决办法: 80端口: 1.屏幕左下角“开始”—右键—计算机管理 2.关闭IIS 3306端口: 1.屏幕左下角“开始”—右键—计算机管理 2.关闭MySQL 3.最后重启php 最后,问题完美…

运行phpstudy时,显示3306端口被占用

1、先打开命令提示符cmd,输入netstat -ano命令,得到本机端口占用情况。查询到3306端口被6852端口占用(每次重启都是新端口) 2、打开任务管理器,点击详细信息。通过PID排序找到可以得知被mysql占用。 3、原来是之前下载…

3306端口被占用解决方式

3306端口被占用解决方式 打开 phpstudy 发现3306端口被占用 1.winr 然后cmd命令行,输入netstat -ano查看所有端口信息 2.找到本地地址3306,后面对应的PID数字,这里是5320, netstat -ano|findstr “5320” (输入对应端口的PID) 3.看到当前端…