使用ln命令在Linux系统中创建连接文件

news/2024/12/29 12:22:04/
在Linux中ln命令用来为文件创建连接,连接类型分为硬连接(Hard Link)和符号连接(Symbolic Link)两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

关于软硬连接解释

硬连接

硬连接是指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型系统都会给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的,一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接,所以只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个硬连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

符号连接(Symbolic Link),也叫软连接。软链接文件又类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,该文件实际上是一个文本文件,其中包含着另一文件的位置信息。

通过实验加深理解

创建不同的类型的文件连接

root@Orangepi:~/test# touch file1        #创建一个测试文件
root@Orangepi:~/test# ln file1 file2     #创建file的一个硬连接文件file2
root@Orangepi:~/test# ln -s file1 file3  #创建file的一个符号连接文件file3
root@Orangepi:~/test# ls -li             #-l参数以单列格式输出文件信息,-i参数输出文件的inode节点信息
total 0
28125 -rw-r--r-- 2 root root 0 Feb 16 08:29 file1
28125 -rw-r--r-- 2 root root 0 Feb 16 08:29 file2
31463 lrwxrwxrwx 1 root root 5 Feb 16 08:30 file3 -> file1

从上面的结果中可以看出,硬连接文件file2与原文件file1的inode节点相同,均为28125,然而符号连接文件的inode节点不同。

分别对文件进行操作

root@Orangepi:~/test# cat >>file1 <<EOF             #向文件file1追加内容
> 12345
> EOF
root@Orangepi:~/test# cat file1                     #输出文件file1内容
12345
root@Orangepi:~/test# cat file2                     #输出文件file2内容
12345
root@Orangepi:~/test# cat file3                     #输出文件file3内容
12345
root@Orangepi:~/test# rm file1                      #删除文件file1
root@Orangepi:~/test# cat file2
12345
root@Orangepi:~/test# cat file3
cat: file3: No such file or directory

通过上面的测试可以看出:当删除原始文件file1后,硬连接文件file2不受影响,但是符号连接文件file1无效。

总结

依此你可以做一些相关的测试,可以得到以下全部结论:
1. 删除符号连接file3,对文件file1,file2无影响;
2. 删除硬连接file2,对文件file1,file3也无影响;
3. 删除原文件file1,对硬连接文件file2没有影响,但是会导致符号连接file3失效;
4. 同时删除原文件file1以及硬连接文件file2,整个文件才会真正的被删除。


http://www.ppmy.cn/news/81950.html

相关文章

C++模板详解

文章目录 1、泛型编程2、函数模板3、函数模板实例化4、函数模板实例化5、类模板及其实例化 1、泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 优点&#xff1a; 1、高度可重用性&#xff1a;泛型编程使用模…

vue语法介绍,高级特性,编程技巧

Vue.js是一款流行的JavaScript框架&#xff0c;用于构建交互式Web界面。它采用了MVVM&#xff08;Model-View-ViewModel&#xff09;模式&#xff0c;使开发人员能够轻松地管理和维护Web应用程序的状态和行为。Vue.js具有简单易学、灵活性强、性能高等优点&#xff0c;因此在We…

有比较好用的web终端开源项目

有比较好用的web终端开源项目 有许多开源的web终端项目可供参考或直接使用&#xff1a; xterm.js&#xff1a;一个在前端运行的终端模拟器&#xff0c;它旨在创建一个类似于Unix shell的环境。然而&#xff0c;它仅仅提供终端用户界面&#xff0c;你需要为其配备一个后端来执行…

MySQL 中的 CASE WHEN 和功能类似的方法

一、关于 MySQL 中的 CASE WHEN 和功能类似的方法 1.1 CASE WHEN CASE WHEN 是 MySQL 中常用的逻辑判断语句&#xff0c;也被称为条件表达式。它可以根据不同的条件对数据进行分类和处理&#xff0c;并返回符合条件的结果。 在使用 CASE WHEN 时&#xff0c;我们需要指定待比…

如何使用Linux Top命令

Linux中的top命令允许您监视当前正在运行的进程及其使用的系统资源。作为系统管理员&#xff0c;它可能是工具箱中最有用的工具&#xff0c;特别是如果您知道如何使用它的话。所有Linux发行版都预装了top实用程序。通过这个交互式命令&#xff0c;您可以自定义如何浏览进程列表…

四维轻云平台常见问题及解决方法

1、在地图中看不见加载的点云或倾斜摄影模型数据&#xff1f; 若点云或模型数据加载后&#xff0c;在地图中看不见&#xff0c;可能是地形的高度高于倾斜模型的高度&#xff0c;导致数据漂浮在空中或者在地形以下&#xff0c;可通过增加数据的移动值Y来调整点云或者模型数据的…

移动云COCA架构,重新定义下一代云

当前&#xff0c;算力已经成为 全球科技竞争的焦点 为此&#xff0c;移动云重磅发布 「移动云COCA&#xff08;Compute on chip Architecture&#xff09;软硬一体片上计算架构」 以下简称移动云COCA架构 以此打造国家级自主可控的 高性能算力底座 带动国产化智算产业成熟…

Unity引擎中的一个组件LaserRenderer

介绍 LaserRenderer是Unity引擎中的一个组件&#xff0c;用于在游戏中绘制激光效果。该组件可以实现高效的激光绘制&#xff0c;并支持多种激光效果的自定义设置。LaserRenderer通常被用于射击类游戏中&#xff0c;用于表示玩家或敌人的射击方向和强度。 方法 SetPositions …