Linux的软链接和硬链接区别

在Linux中,为了方便文件的使用,引入了两种链接,即为软链接和硬链接。

那么什么是硬链接,什么又是软链接呢。

简单来说,硬链接就是一个inode号对应多个文件名,也就是说一个文件使用了多个别名。

首先先来看看我们要创建硬连接的文件信息:

[root@localhost ~]# ll -i /root             //查看原文件的属性信息
201386466 -rw-r–r–  1 root root   46 Oct 20 19:18 testlink

接下来我们来针对testlink文件来创建硬连接文件:

[root@localhost ~]# ln testlink testlink1    //创建名为testlink1的硬链接文件
[root@localhost ~]# ll -i                        //比较两个文件的信息
201386466 -rw-r–r–  2 root root   46 Oct 20 19:18 testlink
201386466 -rw-r–r–  2 root root   46 Oct 20 19:18 testlink1

 从上面可以看出,硬链接数的地方变成了2,其他无论是权限、时间戳、大小,甚至inode号都相同,我们在把硬链接文件删除看看:

[root@localhost ~]# rm -rf testlink     //删除硬链接文件
[root@localhost ~]# ll -i               //查看原文件信息
201386466 -rw-r–r–  1 root root   46 Oct 20 19:18 testlink

硬链接数有变成了1!可见删除链接文件后链接数递减;

刚才我们只针对文件创建了硬链接文件,接下来我们对目录创建个硬链接试试看。

[root@localhost ~]# ll -i              //查看testlink目录的属性信息
67111809 drwxr-xr-x  2 root root    6 Oct 20 20:05 testlink     
[root@localhost ~]# ln testlink testlink1       //对比两个文件的信息
ln: ‘testlink’: hard link not allowed for directory    //报错了!!!

由上述可见:

硬链接文件实际就是对原数据起的一个别名,它们具有相同的inode即date block;

创建的硬链接会增加其链接数;

删除硬链接后链接数相应减少,但文件的其他信息不影响;

硬链接只针对文件,对目录无法创建硬链接。

接下来说说软链接:

软链接又称符号链接,不同于硬链接的创建方法,软链接创建是需加-s选项,接下来我们试着创建一个软链接:

[root@localhost tmp]# ll -id /root/testlink/     //查看原目录信息

可见,软链接可对目录创建,对testlink目录创建软链接前后,自身的属性信息比没有变化,而创建后的软链接文件无论是inode号、权限、时间戳,还是大小均改变,类似于win下的快捷方式

[root@localhost ~]# rm -rf /root/testlink     //删除原链接目录  
[root@localhost ~]# ll -i /tmp/testlink2
24206 lrwxrwxrwx 1 root root 17 Oct 13 16:27 /tmp/testlink2 -> ../root/testlink/    //链接文件报错

由此软链接不能不能删除原链接,否则由于映射不到原文件而报错,此类似于win中得快捷方式

由上

软链接不仅对文件可创建软链接,对目录同样有效

删除原始文件后,软链接失效(类似win下快捷方式)

软链接的编号为自己的编号,与原文件无关

此外,在日常生产中,尽量以相对路径的方式来创建软链接,这样在整个目录拷贝时,不会因为绝对路径的改变而对程序产生影响。


原创文章,作者:maomaosan2008,如若转载,请注明出处:http://www.178linux.com/53187

(0)
maomaosan2008maomaosan2008
上一篇 2016-10-20
下一篇 2016-10-20

相关推荐

  • 第六周

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s/^[[:space:]]\+/#&/ 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; :%s/^[[:space:]]\…

    Linux干货 2016-09-19
  • Varnish的配置与部署

          Varnish与一般服务器软件类似,分为master(management)进程和child(worker,主要做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。 va…

    2017-07-27
  • 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echou、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及共用规定。

    Linux干货 2017-12-03
  • 常见RAID介绍

    RAID简介 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。主要目的是把多块硬盘组合起来提高数据处理能力、容错功能等 根据实现方式分为硬件和软件两种  硬件RAID:通过RAID…

    2016-04-12
  • centos6启动故障及修复

    前言 前文中我们熟悉了linux的启动流程,如果在启动过程中文件丢失或者损坏了怎么办呢?难道只有重装系统这一条路吗?那我们不是成了普通网管了吗?作为专业的运维工程师,我们需要掌握如何快速修复系统启动。 实验1: 破坏/boot/grup/下的文件——-stage2 阶段  不影响启动  mv /boot/grub …

    2017-09-03
  • 马哥教育网络19期+第十一周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 SSL协议基础:     SSL协议位于TCP/IP协议与各种应用层协议之间,本身又分为两层:     (1)、SSL记录协议:建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。  &nbs…

    Linux干货 2016-08-15