当前位置: 首页 > news >正文

RHCSA(软链接与硬链接)

1.硬链接

a.原理

硬链接就是指向原始文件的inode指针,如果指针断了,那么就没有联络了

b.查看硬链接

方法1:ls -l 文件名 或者 ll 文件名

 [root@jun ~]# ls -l temp
-rw-r--r-- 1 root root 0  7月 16 15:12 temp[root@jun ~]# ll temp   #查看文件的硬链接数
-rw-r--r-- 1(硬链接数) root root 0  7月 16 15:12 temp

方法2:stat  文件名

[root@jun ~]# stat temp文件:temp大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:8747084     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2025-07-16 15:12:59.081139353 +0800
最近更改:2025-07-16 15:12:59.081139353 +0800
最近改动:2025-07-16 15:12:59.081139353 +0800
创建时间:2025-07-16 15:12:59.081139353 +0800

c.建立硬链接

格式:

ln -参数 源文件(初始文件)  目标文件(新文件)

例1:建立temp1文件,并且创建硬链接并查看硬链接个数

[root@jun ~]# touch temp1  #新建文件
[root@jun ~]# stat temp1   #查看硬链接数文件:temp1大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:8747084     硬链接:1  #注意!
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2025-07-16 15:19:01.226608283 +0800
最近更改:2025-07-16 15:19:01.226608283 +0800
最近改动:2025-07-16 15:19:01.226608283 +0800
创建时间:2025-07-16 15:19:01.226608283 +0800
[root@jun ~]# ln temp1 temp2    #新建链接,temp2指向temp1所对应的数据
[root@jun ~]# stat temp1        #查看temp1的硬链接数文件:temp1大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:8747084     硬链接:2  #注意!
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2025-07-16 15:19:01.226608283 +0800
最近更改:2025-07-16 15:19:01.226608283 +0800
最近改动:2025-07-16 15:19:15.687336848 +0800
创建时间:2025-07-16 15:19:01.226608283 +0800
[root@jun ~]# stat temp2        #查看temp2的硬链接数文件:temp2大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:8747084     硬链接:2
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2025-07-16 15:19:01.226608283 +0800
最近更改:2025-07-16 15:19:01.226608283 +0800
最近改动:2025-07-16 15:19:15.687336848 +0800
创建时间:2025-07-16 15:19:01.226608283 +0800
[root@jun ~]# echo "hello world"  > temp1    #把字符串“china”输出到temp1
[root@jun ~]# cat temp1
hello world
[root@jun ~]# cat temp2
hello world

d.硬链接建立后,删除源文件数据依然可以访问,只有硬链接为0时,数据则无法访问

[root@jun ~]# rm -f temp1     #删除一个硬链接
[root@jun ~]# cat temp2       #可以同一另一个连接访问数据
hello world
[root@jun ~]# rm -f temp2      #两个硬链接都删除了
[root@jun ~]# cat temp2       #再次查看temp2文件就没有了
cat: temp2: 没有那个文件或目录

e.硬链接不能个目录建立,因为目录本身自带2个硬链接

[root@jun ~]# mkdir mk1
[root@jun ~]# stat mk1文件:mk1大小:6         	块:0          IO 块:4096   目录
设备:fd00h/64768d	Inode:19415595    硬链接:2
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2025-07-16 15:31:09.687051939 +0800
最近更改:2025-07-16 15:31:09.687051939 +0800
最近改动:2025-07-16 15:31:09.687051939 +0800
创建时间:2025-07-16 15:31:09.687051939 +0800
[root@jun ~]# ln mk1 mk2
ln: mk1: 不允许将硬链接指向目录
[root@jun ~]# ls -a mk1    #目录本身自带两个硬链接
.  ..

注意:

硬链接不能跨分区,例如C盘和D盘不能创建硬链接

不可以在不同的文件系统中建立硬链接,由于inode是当前文件所在本文件系统的索引值即只能在本分区使用,则硬链接不能跨越文件系统

2.软链接

a.原理

软链接本质是一种符号链接,类似于windows的快捷方式,存储对应文件的路径

b.格式

ln -s 源文件  软链接名称

例题:创建软链接并且查看,删除

[root@jun ~]# echo "hello" > t1.txt
[root@jun ~]# cat t1.txt
hello
[root@jun ~]# ln -s t1.txt t2.txt    #创建软链接
[root@jun ~]# ll                     #查看软链接指向关系
总用量 8
drwxr-xr-x. 2 root root    6  7月  5 14:03 公共
drwxr-xr-x. 2 root root    6  7月  5 14:03 模板
drwxr-xr-x. 2 root root    6  7月  5 14:03 视频
drwxr-xr-x. 2 root root    6  7月  5 14:03 图片
drwxr-xr-x. 2 root root    6  7月  5 14:03 文档
drwxr-xr-x. 2 root root    6  7月  5 14:03 下载
drwxr-xr-x. 2 root root    6  7月  5 14:03 音乐
drwxr-xr-x. 2 root root    6  7月  5 14:03 桌面
-rw-------. 1 root root 1337  7月  5 12:01 anaconda-ks.cfg
drwxr-xr-x  2 root root    6  7月 16 15:31 mk1
-rw-r--r--  1 root root    6  7月 16 15:39 t1.txt
lrwxrwxrwx  1 root root    6  7月 16 15:39 t2.txt -> t1.txt
[root@jun ~]# rm -f t1.txt     
[root@jun ~]# cat t2.txt           #删除软链接,只要源文件存在则数据依然可以访问
cat: t2.txt: 没有那个文件或目录

注意:软链接数不可以查看,只能通过ll 或者 ls -l 命令查看指向关系

c.修改软链接

格式:

格式:
ln   -snf  新文件名  软链接名

例题:创建软链接,并且修改软链接的指向方向

[root@jun ~]# echo "hello china"  >  te1
[root@jun ~]# ln -s te1 te2
[root@jun ~]# ll
总用量 8
drwxr-xr-x. 2 root root    6  7月  5 14:03 公共
drwxr-xr-x. 2 root root    6  7月  5 14:03 模板
drwxr-xr-x. 2 root root    6  7月  5 14:03 视频
drwxr-xr-x. 2 root root    6  7月  5 14:03 图片
drwxr-xr-x. 2 root root    6  7月  5 14:03 文档
drwxr-xr-x. 2 root root    6  7月  5 14:03 下载
drwxr-xr-x. 2 root root    6  7月  5 14:03 音乐
drwxr-xr-x. 2 root root    6  7月  5 14:03 桌面
-rw-------. 1 root root 1337  7月  5 12:01 anaconda-ks.cfg
drwxr-xr-x  2 root root    6  7月 16 15:31 mk1
lrwxrwxrwx  1 root root    6  7月 16 15:39 t2.txt -> t1.txt
-rw-r--r--  1 root root   12  7月 16 15:47 te1
lrwxrwxrwx  1 root root    3  7月 16 15:48 te2 -> te1
[root@jun ~]# cat te1 te2
hello china
hello china
[root@jun ~]# ln -snf  /etc/NetworkManager/system-    connections/ens160.nmconnection   te2       #修改指向关系
[root@jun ~]# ll
总用量 8
drwxr-xr-x. 2 root root    6  7月  5 14:03 公共
drwxr-xr-x. 2 root root    6  7月  5 14:03 模板
drwxr-xr-x. 2 root root    6  7月  5 14:03 视频
drwxr-xr-x. 2 root root    6  7月  5 14:03 图片
drwxr-xr-x. 2 root root    6  7月  5 14:03 文档
drwxr-xr-x. 2 root root    6  7月  5 14:03 下载
drwxr-xr-x. 2 root root    6  7月  5 14:03 音乐
drwxr-xr-x. 2 root root    6  7月  5 14:03 桌面
-rw-------. 1 root root 1337  7月  5 12:01 anaconda-ks.cfg
drwxr-xr-x  2 root root    6  7月 16 15:31 mk1
lrwxrwxrwx  1 root root    6  7月 16 15:39 t2.txt -> t1.txt
-rw-r--r--  1 root root   12  7月 16 15:47 te1
lrwxrwxrwx  1 root root   58  7月 16 15:48 te2 -> /etc/NetworkManager/system-connections/ens160.nmconnection

3.硬链接和软链接的区别

a.硬链接中源文件与链接文件公用一个inode号,是同一个文件

b.软链接中源文件与链接文件拥有不同的inode号,是两个不同的文件

c.软链接的指向关系可以通过命令查看,硬链接不可以查看执行关系,只能查看连接硬链接数

d.文件大小不一样,硬链接文件容量相同是同一个文件,软链接只是一个快捷方式,容量较小

e.软链接可以跨越文件系统分区,任何用户都可以建立指向目录的软链接

http://www.lryc.cn/news/590435.html

相关文章:

  • 高性能架构模式——高性能缓存架构
  • sqli-labs靶场通关笔记:第23关 注释符过滤
  • 二、CV_AlexNet
  • 81、面向服务开发方法
  • 关于SaaS业务模式及其系统架构构建的详细解析
  • 横向移动(下)
  • IPD-流程设计-TE角色说明书参考模板
  • 多维傅里叶变换性质与计算
  • CSS3动画基本使用——页面一打开盒子就从左边走向右边
  • 【尝试】本地部署openai-whisper,通过 http请求识别
  • C++-linux系统编程 11.常见问题与答案
  • 创建SprngBoot项目的四种方式
  • 降本增效利器:汽车制造中EtherCAT转PROFIBUS DP网关应用探析
  • 快速开发汽车充电桩的屏幕驱动与语音提示方案
  • 使用 SeaTunnel 建立从 MySQL 到 Databend 的数据同步管道
  • Mysql系列--1、库的相关操作
  • 在 IntelliJ IDEA 中添加框架支持的解决方案(没有出现Add Framework Support)
  • AI学习笔记三十一:YOLOv8 C++编译测试(OpenVINO)
  • 使用Telegraf从工业物联网设备收集数据的完整指南
  • Beautiful Soup(BS4)
  • ABP VNext + EF Core 二级缓存:提升查询性能
  • AI炒作,AGI或在2080年之前也无法实现,通用人工智能AGI面临幻灭
  • 【RTSP从零实践】13、TCP传输AAC格式RTP包(RTP_over_TCP)的RTSP服务器(附带源码)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | AutoTextEffect(自动打字机)
  • 使用Whistle自定义接口返回内容:Mock流式JSON数据全解析
  • SQL性能分析
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • 【Linux】如何使用nano创建并编辑一个文件
  • 动态规划题解_打家劫舍【LeetCode】
  • 编译原理第四到五章(知识点学习/期末复习/笔试/面试)