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 21:28
下一篇 2016-10-20 22:05

相关推荐

  • 笔记二、如何在VMWare WorkStations安装CentOS6.8

    一、准备工作     1.安装VMWare WorkStatrion     2.准备好CentOS 6.8 镜像包     http://www.centoscn.com/CentosSoft/iso/    CenO…

    Linux干货 2017-02-14
  • 缓存需知

    Edit Web缓存核心技术点需知 5.1 HTTP首部控制 5.2 基于新鲜度检测机制: 2.1 特征1:时间局部性 2.2 特征2:空间局部性 2.3 缓存的优点 2.4 哪类数据应该被缓存 2.5 哪类数据可缓存但不应该被缓存 2.6 缓存命中率决定缓存有效性 2.7 缓存数据生命周期 2.8 缓存处理步骤 2.9 缓存和普通数据读取的区别 1. 完整…

    Linux干货 2015-02-22
  • rpm软件包管理

    一:二进制应用程序组成部分 二进制文件(which command)、库文件(ldd `which command`)、配置文件(.conf)、帮助文件(.README)等 二:rpm包文件的组成 rpm文件、rpm元数据(如名称、依赖性关系等)、安装或卸载时运行的脚本 三:rpm包数据库: 1.组成部分(通过 ls /var/lib/rpm 来查…

    2017-08-13
  • N21沉舟第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;   (1) 为硬盘新建两个主分区;并为其安装grub;   (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs;   (3) 为rootfs提供…

    Linux干货 2016-09-10
  • 第七周

    创建一个10G分区,并格式化为ext4的文件系统 划分分区 partxprobe:重读分区表   建立文件系统,acl机制          挂载文件系统          写文件 &nbs…

    Linux干货 2016-12-11
  • 如何在CentOS上构架一个简易的局域网web服务器

    首先,要取得适用你系统版本的http源码包,这里推荐两个网站: httpd.apache.org www.kernel.org 根据自己系统的版本下载相应的源码包; CentOS7 下载 httpd-2.4.25.tar CentOS6 下载 httpd-2.2.32.tar 以CentOS 6 示例: 首先,我们先来为http…

    2017-03-09