创建软连接和硬链接

article/2025/10/7 6:37:11

前言

硬链接的原理:使链接的两个文件共享同样的文件内容,也就是同样的 inode。
硬链接有一个缺陷:只能创建指向文件的硬链接,不能创建指向目录的硬链接。但软链接可以指向文件或目录。

软链接的原理:就跟我们在window

ln 命令

创建链接(软连接和硬链接)
linux中文件存储的方式,是文件名和文件内容单独分开存储在硬盘上的。
每个文件的文件内容被分配到一个标示号码,就是 inode。因此每个文件名都绑定到它的文件内容(用 inode 标识)

在这里插入图片描述

创建硬链接

cd
mkdir test
cd test

并且用 touch 命令创建一个新的空白文件:

touch file1

我们接着来创建一个文件 file2,使之成为 file1 的硬链接。
要创建硬链接,直接用 ln 命令,不加任何参数:

ln file1 file2

以上命令创建了 file1 的一个硬链接 file2。
但是我们可以用 ls -i 命令查看一下(-i 参数可以显示文件的 inode)。我们可以看到 file1 和 file2 的 inode 是一样的,都是 655571。当然你的电脑上应该和我不一样,是其它数字吧。

如果我们用 rm file2 来删除 file2,那么对 file1 没什么影响。如果我们用 rm file1 来删除 file1,对 file2 也没什么影响。所以,对于硬链接来说,删除任意一方的文件,共同指向的文件内容并不会从硬盘上被删除。

只有既删除 file1 又删除 file2,它们共同指向的文件内容才会消失,也就是那个 inode 才会被删去。
在这里插入图片描述
原理图
在这里插入图片描述

创建软链接

创建硬链接时 ln 命令不带任何参数,但是要创建软链接需要加上 -s 参数

ln -s file1 file2

用 ls -l 命令查看一下,会发现形式和之前的硬链接不一样噢。file2 的信息是这样的: file2->file1,表示 file2 指向 file1。

file2 的文件信息里,第一列表示权限的第一个字母变成了 l,表示 link(链接)。之前硬链接的时候是没有l的,硬链接外表看起来就和普通文件类似。file2 的颜色是浅蓝色,也说明是链接文件。

我们用 ls -l 命令查看文件信息的时候,第二列的那个 1,表示拥有相同 inode 号的文件数。不难理解,因为 file2 指向 file1,它们并没有指向同一块文件内容,所以它们的 inode 号不相同。

用 ls -i 看一下就知道了:

file1 的 inode 号仍然是 655571。而 file2 的 inode 号是 655574,不一样。

打开 file2 查看,发现和 file1 是一样的。这不难理解,因为 file2 这个软链接只是 file1 的一个快捷方式,它指向的是 file1,所以显示的是 file1 的内容。但其实它自身的 inode 和 file1 并不一样,也就是文件内容不一样。

1 如果我们删除了 file2,没什么大不了,file1 不会受到影响。但是如果删除了 file1,那么 file2 会变成“死链接”,因为指向的文件不见了。
2 软链接可以指向目录,硬链接不行。

在这里插入图片描述
原理图:
在这里插入图片描述

参考链接

该文为本人学习的笔记,方便以后自己复习。参考以及图片来自
慕课网专栏:https://www.imooc.com/read/39
取其精华整合而成。


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

相关文章

软连接与硬链接

引入 1.硬链接与软连接 Linux 系统中有软链接和硬链接两种特殊的 "文件"2.inode是什么 ⛅要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西 ⛅当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inod…

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、原来是之前下载…