Linux建立软链接、硬链接

article/2025/10/7 6:47:55

软链接

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

建立软链接:ln -s 源文件或目录 目标文件或目录

示例:

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

linux下的软链接类似于windows下的快捷方式
-s 是 symbolic的意思

删除软链接:rm –rf 软链接名称

rm -rf b(请注意不要在后面加”/”,rm -rf 后面加“/”的话,会进行递归删除,非常危险!)
示例:

rm -rf /usr/bin/ngnix
修改软链接:ln –snf 新的源文件或目录 目标文件或目录

将会修改原有的链接地址为新的地址,示例:
创建一个软链接:

ln –s  /var/www/test   /var/test

修改指向的新路径:

ln –snf  /var/www/test1   /var/test
找到文件夹下所有建立的软链接:ls -alR | grep ^l

示例:

[root@CentOS6 home]# ls -alR | grep ^l
lrwxrwxrwx. 1 root root   22 Mar 16 17:59 aes.h -> ../../crypto/aes/aes.h
lrwxrwxrwx. 1 root root   24 Mar 16 17:59 asn1.h -> ../../crypto/asn1/asn1.h
lrwxrwxrwx. 1 root root   28 Mar 16 17:59 asn1_mac.h -> ../../crypto/asn1/asn1_mac.h
以下省略

硬链接

说明:可以将硬链接理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只不过是不同的名字而已。我们每添加一个硬链接,该文件的inode链接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件的inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建

建立硬链接:ln a b
[root@CentOS6 project]# echo "Hello world" > readme.txt
[root@CentOS6 project]# ln readme.txt readit.txt	#创建一个硬链接
[root@CentOS6 project]# cat readme.txt
Hello world
[root@CentOS6 project]# cat readit.txt
Hello world
[root@CentOS6 project]# ls -l readme.txt
-rw-r--r--. 2 root root 12 Mar 16 23:41 readme.txt
[root@CentOS6 project]# rm -rf readme.txt	#删除原文件
[root@CentOS6 project]# cat readit.txt	#删除原文件之后readit.txt依旧可以访问
Hello world
[root@CentOS6 project]# ls -l readit.txt
-rw-r--r--. 1 root root 12 Mar 16 23:41 readit.txt

在这里插入图片描述

ln命令

ln 命令用于创建链接文件,格式为“ln [选项] 目标”,其可用的参数以及作用可以通过ln --help查看:

[root@CentOS6 home]# ln --help--backup[=CONTROL]      make a backup of each existing destination file-b                          like --backup but does not accept an argument-d, -F, --directory         allow the superuser to attempt to hard linkdirectories (note: will probably fail due tosystem restrictions, even for the superuser)-f, --force                 remove existing destination files-i, --interactive           prompt whether to remove destinations-L, --logical               make hard links to symbolic link references-n, --no-dereference        treat destination that is a symlink to adirectory as if it were a normal file-P, --physical              make hard links directly to symbolic links-s, --symbolic              make symbolic links instead of hard links-S, --suffix=SUFFIX         override the usual backup suffix-t, --target-directory=DIRECTORY  specify the DIRECTORY in which to createthe links-T, --no-target-directory   treat LINK_NAME as a normal file-v, --verbose               print name of each linked file--help     display this help and exit--version  output version information and exit

-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程


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

相关文章

软连接和硬链接

好多人对软件链接,硬链接不清楚,今天给大家介绍一下 一、软链接(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.看到当前端…

使用phpStudy显示3306端口被占用,该怎么办?

目录 出现的问题及其报错: 解决方案: 方案一:关闭3306端口正在运行的程序(优先使用方案一!!!) 步骤1:先打开一个终端 ( WinR ,输入cmd &…