首页 > 系统相关 >Linux 软连接和硬链接的区别

Linux 软连接和硬链接的区别

时间:2023-03-24 19:38:24浏览次数:31  
标签:f1 f2 文件 链接 Linux oracle 连接


阅读目录

  • 一、Linux链接概念
  • 1、【硬连接】
  • 2、【软连接】
  • 二、通过实验加深理解
  • 三、总结归纳

一、Linux链接概念

Linux链接分两种:

一种被称为硬链接(Hard Link)
一种被称为符号链接(Symbolic Link)

默认情况下,ln 命令产生硬链接、ln -s 命令产生软链接。

1、【硬连接】

硬连接指通过索引节点来进行连接。

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。

在Linux中,多个文件名指向同一索引节点是存在的,一般这种连接就是硬连接。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止 “误删” 的功能。

其原因如上所述,因为对应该目录的索引节点有一个以上的连接。

只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。

也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

2、【软连接】

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。

软链接文件有类似于 Windows 的快捷方式。

它实际上是一个特殊的文件。

在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

二、通过实验加深理解

[oracle@Linux]$ touch f1     # 创建一个测试文件 f1
[oracle@Linux]$ ln f1 f2     # 创建 f1 的一个硬连接文件 f2
[oracle@Linux]$ ln -s f1 f3  # 创建 f1 的一个符号连接文件 f3
[oracle@Linux]$ ls -li  # -i 参数显示文件的 inode 节点信息
total 0
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

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

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

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

三、总结归纳

依此您可以做一些相关的测试,可以得到以下全部结论:

  1. 删除符号连接 f3,对 f1,f2 无影响;
  2. 删除硬连接 f2,对 f1,f3 也无影响;
  3. 删除原文件 f1,对硬连接 f2 没有影响,导致符号连接 f3 失效;
  4. 同时删除原文件 f1,硬连接 f2,整个文件会真正的被删除。

综上:硬链接类似于文件复制,软连接类似于为文件创建快捷方式。


标签:f1,f2,文件,链接,Linux,oracle,连接
From: https://blog.51cto.com/u_13571520/6147961

相关文章

  • idea运行数据库连接出错
      错误原因:我的mysql数据库没有密码,在idea中连接数据库时代码是这样的:spring.datasource.username=rootspring.datasource.password=''解决办法:spring.datasource......
  • Linux rm 删除指定文件外的其他文件 方法汇总
    一、Linux下删除文件和文件夹常用命令如下:rmfile#删除文件rm-rfdir#删除文件夹#需要注意的是,rmdir只能够删除空文件夹。 二、删除制定文件(夹)之外的所有文件......
  • 在同一网络下手机通过代理服务连接电脑的socks
    让手机和电脑连接同一WiFi,查看电脑的IP地址。此为192.168.1.100ipconfig2.打开电脑的socks,并查看端口,此端口为108083.打开手机WIFI连接,选择高级设置,点击代理,选择......
  • Linux shell set command All In One
    LinuxshellsetcommandAllInOneerros❌unbound-variable#$1:unboundvariableif(($1))thenecho$1#arg=$1#tsGenerator$arg#tsGenerator......
  • SpringBoot 使用Druid实现数据库连接池并结合AOP实现多数据源
    SpringBoot是一个快速开发Spring应用程序的框架,而Druid是一个高性能的数据库连接池,可以提高数据库访问的效率。在SpringBoot中使用Druid作为数据库连接池,可以更好地管理和......
  • linux环境下离线安装python3
    1、卸载旧的python3rpm-qa|greppython3|xargsrpm-ev--allmatches--nodepswhereispython3|xargsrm-frv2、安装python3http://npm.taobao.org/mirrors/python/......
  • Linux+Typora+Picgo图床配置
    Linux+Typora+Picgo图床配置首先不建议安装在UbuntuStore里的版本,会有一些限制。首先安装node.js去官网下载编译好的源码,配置软连接,使全局都可以使用node命令。ln-......
  • Linux-权限管理相关操作
    查看文件和目录的权限使用命令:ls-al或者ll使用ls不带参数只显示文件名称,通过ls-al可显示文件或者目录的权限信息。显示的信息依次代表:文件类型,文件权限,文件的用户,文件的......
  • Linux-编辑器vim与nano的使用
    实现vim运行模式编辑模式:等待编辑命令输入插入模式:编辑模式下,输入i进入插入模式,插入文本信息命令模式:在编辑模式下,输入:进行命令模式命令  :q 直接退出vi :wq 保存后......
  • linux系统下NFS服务器的配置-34号
     ......