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

Linux软连接和硬链接

时间:2023-06-05 17:06:41浏览次数:36  
标签:f1 f2 f3 链接 Linux oracle 连接

1.Linux链接概念

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

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

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

2.通过实验加深理解

[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与原文件f1的inode节点相同,均为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文件无效

3.总结

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



标签:f1,f2,f3,链接,Linux,oracle,连接
From: https://blog.51cto.com/u_4018548/6417889

相关文章

  • 电脑WIFI无法连接5gwifi设置
    1.找到网络连接对应wifi 右键点选配置,然后高级 2.到了这一步可以看到我这里的属性只有3个,点击WirelessMode 3.选802.11a就行了因为无线规格工作频段802.11a(5GHz)802.11b(2.4GHz)802.11g(2.4GHz)802.11n(2.4/5GHz)802.11ac(2.4/5GHz)  4.再不行(比如高级->属性这里......
  • Linux基础24 定时任务, 发邮件, date命令
    date命令[root@localhost~]#date2023年06月01日星期四00:57:36CST[root@localhost~]#date+%F2023-06-01[root@localhost~]#date+%F-%T2023-06-01-01:17:37[root@localhost~]#date+%Y2023[root@localhost~]#date+%m06[root@localhost~]#date+%d......
  • Windows和Linux的环境变量
    环境变量概述环境变量(EnvironmentVariables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的pat......
  • Linux和Mac环境变量设置
    在linux和mac中设置环境变量我已知的有两种方式,一种是修改环境变量的文件,另一种是使用export关键字。之所以不提windows,是因为我所知的在windows上配置环境变量只有通过窗口然后点击这一种方式。以mac配置pyenv环境变量为例:1、export方式查看当前shell是zsh还是bash,如果是bas......
  • linux tool objdump
    NAMEobjdump-displayinformationfromobjectfiles.SYNOPSISobjdump[-a|--archive-headers][-bbfdname|--target=bfdname][-C|--demangle[=style]][-d|--disassemble][-D|--disa......
  • linux简单挂载u盘步骤
    第一步:创建要挂载的usb目录,一般选择在:mkdir/mnt/usb第二步:使用mount命令挂载u盘:sudomount/dev/sdb1/mnt/usb此时可以通过访问/mnt/usb浏览u盘文件第三步:完成操作后,使用umount解除挂载:sudoumount/mnt/usb......
  • linux扫描hba卡命令,如何在redhat中查看HBA卡的信息
    如何在redhat中查看HBA卡的信息?针对这个问题,今天小编总结这篇有关HBA卡的文章,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。HBA卡主要用于安装在服务器上,连接到光纤交换机,或者也可以直联到存储,在存储和服务器之间形成FCSAN。现在HBA卡的速率一般为8GB、16GB,一张卡上一般有一......
  • Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别
    一、后台进程管理命令fg、bg、jobs、&、ctrl+z、ctrl+c、ctrl+\、ctrl+d1、&加在一个命令的最后,可以把这个命令放到后台执行,如gftp&,2、ctrl+z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行3、jobs查看当前有多少在后台运行的命令jobs-l......
  • Linux 下串口驱动头文件之tty.h
    linux-2.6.29/include/linux#ifndef_LINUX_TTY_H#define_LINUX_TTY_H/**'tty.h'definessomestructuresusedbytty_io.candsomedefines.*/#ifdef__KERNEL__#include<linux/fs.h>#include<linux/major.h>#include<linux/termi......
  • Linux 下串口驱动头文件之termios.h
    在linux-2.6.29/include/asm-generic下的termios.h/*termios.h:generictermios/termiousercopying/translation*/#ifndef_ASM_GENERIC_TERMIOS_H#define_ASM_GENERIC_TERMIOS_H#include<asm/uaccess.h>#ifndef__ARCH_TERMIO_GETPUT/**Translatea"t......