三分钟了解学会软链接和硬链接

简介: 符号链接又叫软链接,和原文件不是一个文件 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。

一、软链接和硬链接


1、软链接

符号链接又叫软链接,和原文件不是一个文件 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。


创建软链接文件ln -s 原文件 目标文件


图解

4c9483eab55e43f5beb27bddb9caac8a.png

样例:

[root@ls_nfqZ8Onc home]# mkdir /home/data
[root@ls_nfqZ8Onc home]# cd /home/data
[root@ls_nfqZ8Onc data]# touch file
[root@ls_nfqZ8Onc data]# ln -s file file_copy
[root@ls_nfqZ8Onc data]# ls
file  file_copy
[root@ls_nfqZ8Onc data]# stat file
  File: file
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 17:45:48.083449607 +0800
Modify: 2022-07-14 17:45:48.083449607 +0800
Change: 2022-07-14 17:45:48.083449607 +0800
 Birth: -
[root@ls_nfqZ8Onc data]# stat file_copy 
  File: file_copy -> file
  Size: 4           Blocks: 0          IO Block: 4096   symbolic link
Device: fd01h/64769d  Inode: 656901      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 17:46:46.876686098 +0800
Modify: 2022-07-14 17:46:41.575664771 +0800
Change: 2022-07-14 17:46:41.575664771 +0800
 Birth: -

当删除原文件时:

4152c31516f442238ffd44cdf0a022bc.png

[root@ls_nfqZ8Onc data]# rm -r file
rm: remove regular empty file 'file'? y
[root@ls_nfqZ8Onc data]# ls
file_copy
[root@ls_nfqZ8Onc data]# ls -l
total 0
lrwxrwxrwx 1 root root 4 Jul 14 17:46 file_copy -> file

2、硬链接

硬链接 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。

当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结

构中的位置

创建硬链接文件:ln 原文件 目标文件

图解b55f8228b5f7468e858d4306cc1a3891.png

[root@ls_nfqZ8Onc data]# ln file file_copy1
[root@ls_nfqZ8Onc data]# stat file
  File: file
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 18:13:04.462817371 +0800
Modify: 2022-07-14 18:13:04.462817371 +0800
Change: 2022-07-14 18:13:19.030870719 +0800
 Birth: -
[root@ls_nfqZ8Onc data]# stat file_copy1
  File: file_copy1
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 18:13:04.462817371 +0800
Modify: 2022-07-14 18:13:04.462817371 +0800
Change: 2022-07-14 18:13:19.030870719 +0800
 Birth: -
[root@ls_nfqZ8Onc data]# rm -r file
rm: remove regular empty file 'file'? y
[root@ls_nfqZ8Onc data]# ls
file_copy1
[root@ls_nfqZ8Onc data]# stat file_copy1
  File: file_copy1
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d  Inode: 656900      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 18:13:04.462817371 +0800
Modify: 2022-07-14 18:13:04.462817371 +0800
Change: 2022-07-14 18:27:58.162043692 +0800
 Birth: -


相关文章
|
开发框架 监控 安全
webshell检测方法归纳
webshell检测方法归纳
1052 0
|
存储 C语言 开发者
C语言实战 | Flappy Bird游戏
【7月更文挑战第4天】Flappy Bird是由越南开发者制作的简单却极具挑战性的游戏,玩家需控制小鸟穿越水管障碍。游戏涉及角色初始化、显示和更新。小鸟和水管结构体存储数据,使用变量和数组。初始化小鸟和水管,显示背景、小鸟和水管,更新小鸟位置及碰撞检测。代码示例展示了小鸟和水管的状态管理,当小鸟与管道碰撞或触地时,游戏结束。游戏的成功在于其独特的虐心体验。
256 0
C语言实战 | Flappy Bird游戏
|
存储 算法 固态存储
大数据分区优化存储成本
大数据分区优化存储成本
324 4
|
监控 Serverless 云计算
迎接 Serverless 时代:机遇、挑战与未来展望
Serverless架构作为新兴的云计算范式,正在改变软件开发和部署的方式。它让开发者无需管理服务器即可构建和运行应用,具有成本效益、高开发效率和自动扩展等优势。本文探讨了Serverless架构的机遇与挑战,包括快速迭代、微服务支持和事件驱动模型,并分析了其面临的冷启动、状态管理和调试难题。未来,随着语言支持、集成工具和安全性的提升,Serverless架构有望成为主流选择。
|
数据采集 NoSQL MongoDB
使用多进程和 Scrapy 实现高效的 Amazon 爬虫系统
在这篇博客中,将展示如何使用多进程和 Scrapy 来构建一个高效的 Amazon 爬虫系统。通过多进程处理,提高爬虫的效率和稳定性,同时利用 Redis 进行请求调度和去重。
|
机器学习/深度学习 数据采集 数据可视化
【Python 机器学习专栏】数据缺失值处理与插补方法
【4月更文挑战第30天】本文探讨了Python中处理数据缺失值的方法。缺失值影响数据分析和模型训练,可能导致模型偏差、准确性降低和干扰分析。检测缺失值可使用Pandas的`isnull()`和`notnull()`,或通过可视化。处理方法包括删除含缺失值的行/列及填充:固定值、均值/中位数、众数或最近邻。Scikit-learn提供了SimpleImputer和IterativeImputer类进行插补。选择方法要考虑数据特点、缺失值比例和模型需求。注意过度插补和验证评估。处理缺失值是提升数据质量和模型准确性关键步骤。
1301 0
|
Java 编译器 程序员
Android C/C++开发指南
众所周知,Android作为目前主流的移动终端领域的开发平台,其主要的开发语言就是JAVA。Android借助于JAVA高效、灵活的开发模式,迅速占领了移动互联网开发的半壁江山。基于JDK和Android实现的各种JAVA框架,开发人员可以快速实现各种功能的APP,而且APP的安装和升级维护都实现的方便。
1592 0
|
人工智能 物联网 vr&ar
未来智能家居技术的发展趋势与应用前景
随着科技的不断进步,智能家居技术正以惊人的速度改变着我们的生活方式。本文将探讨未来智能家居技术的发展趋势,以及其在日常生活中的应用前景,为读者带来对未来生活的一瞥。
|
Shell Linux 网络安全
Linux运行与控制后台进程的方法:nohup, setsid, &, disown, screen
我们经常会碰到这样的问题,用ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络等的不稳定导致任务中途失败。这是由于在用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。
1501 0
阿里云CN域名注册价格、续费、转入和赎回费用表2023更新
2023年阿里云CN域名注册价格、续费、转入和赎回费用表,阿里云cn域名价格表,新用户注册cn域名首年8.8元,CN域名续费39元,使用优惠口令续费35元一年,新用户可以领取阿里云cn域名注册26.2元代金券,老用户注册cn域名可以使用优惠口令。阿里云百科分享CN域名注册价格、cn域名续费一年费用、cn域名优惠口令和cn域名代金券免费领取:
2284 0
阿里云CN域名注册价格、续费、转入和赎回费用表2023更新