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

相关推荐

  • 笔记

    命令 命令列表 alias 别名 bc 计算器 basename文件基本名 cp 复制 cd 进入文件夹 cat /proc/partition 查看硬盘的使用情况 cat /proc/meminfo 查看内存的使用情况 chvt 切换终端 chown改变文件的所属组 edj:chown -R www /etc/host clock 查询或设置硬件时间 ch…

    Linux干货 2017-05-25
  • linux系统上命令使用格式及常见命令

    [root@localhost ~]# date -d ‘2017-07-06 00:00:00 ‘  用上面这条指令讲解命令使用格式 date command  -d 是参数,参数有可选参数,必选参数,在参数前必选加上- ,还是以这条指令为列,-d可以写成–date,如果写成date,date前面必选…

    Linux干货 2017-08-19
  • N26-第一周博客作业

    1、计算机的组成及功能     CPU: Central Processing Unit 运算与管理控制功能        包括:          &nbsp…

    Linux干货 2017-01-10
  • N28_第二周

    linux文件管理命令

    Linux干货 2017-12-10
  • Linux Basics–part3

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d” ” -f1 | sort -u centos ronny root 或 ~]# who | cut -d” ” -f1 | sort |uniq centos ronny root 2…

    Linux干货 2017-08-07
  • Nginx及Nginx模块——更加轻量级的HTTP server

    Nginx engine X = Nginx      NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. NGINX is known f…

    Linux干货 2016-10-25