码迷,mamicode.com
首页 > 系统相关 > 详细

Linux重要概念之软链接和硬连接

时间:2016-07-31 16:09:09      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:软链接   硬连接   

         当我们登陆linux系统后,在使用ls –l命令列出目录下的文件时。有一些文件的显示格式是如下形式的:

lrwxrwxrwx.  1 root root      7 Jul 25 09:18 rc -> rc.d/rc

这是什么鬼,初次接触的话,会有种很奇怪的感觉,不知道这个文件为啥跟其它文件显示形式不一样。当我们对linux文件类型有所了解之后就会很容易明白这类文件就是所谓的软链接文件。

linux系统中除了像上边显示的那样的软链接文,还有另外一种链接叫做硬连接。硬连接如同一个人有连个名字,无论叫哪个名字时,人的各种生理数据都不会发生改变。硬连接也是一样,它随源文件内容的增减而发生对应的内容更改。

软链接和硬连接的区别:

硬连接:

         创建硬链接会增加额外的记录项以引用文件

         对应于同一文件系统上的一个物理文件

         每个文件引用相同的inode

         创建时链接数递增

         删除问价时:

                  rm命令递减计数的链接

                  文件要存在,至少一个链接数

                  当链接数为零时,该文件被删除

         不能跨越驱动器或分区

         语法:ln filename [linkname]

                 [root@localhost test]# ll
                total 8
                drwxr-xr-x   2 root root 4096 Jul 31 17:56 .
                dr-xr-x---. 27 root root 4096 Jul 31 17:55 ..
                [root@localhost test]# touch hardlink.txt
                [root@localhost test]# ll
                total 8
                drwxr-xr-x   2 root root 4096 Jul 31 17:56 .
                dr-xr-x---. 27 root root 4096 Jul 31 17:55 ..
                -rw-r--r--   1 root root    0 Jul 31 17:56 hardlink.txt
                [root@localhost test]# ln hardlink.txt hardlink1.txt 
                [root@localhost test]# echo "aaaaaa" > hardlink.txt 
                [root@localhost test]# cat hardlink.txt 
                aaaaaa
                [root@localhost test]# cat hardlink1.txt 
                aaaaaa
                [root@localhost test]# rm hardlink
                rm: cannot remove `hardlink‘: No such file or directory
                [root@localhost test]# rm hardlink.txt 
                rm: remove regular file `hardlink.txt‘? y
                [root@localhost test]# cat hardlink1.txt 
                aaaaaa
                [root@localhost test]#
                [root@localhost test]# mkdir hardlink
                [root@localhost test]# ln hardlink hardlink2
                ln: `hardlink‘: hard link not allowed for directory
                [root@localhost test]#

 

软链接:

         一个符号链接指向另一个文件

         ln –s会显示链接的名称和引用的文件

         一个符号链接的内容是它引用文件的名称

         目录也可以进行软链接

         可以跨分区

         指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增减或减少

                  目标文件inode的引用计数;

         语法:ln  -s filename [linkname]

                [root@localhost test]# touch symbolic.txt
                [root@localhost test]# mkdir symbolic
                [root@localhost test]# cp -r /tmp/* symbolic
                [root@localhost test]# ln -s symbolic.txt symbolic1.txt
                [root@localhost test]# ln -s symbolic symbolic1
                [root@localhost test]# ls -l
                total 4
                drwxr-xr-x 10 root root 4096 Jul 31 18:01 symbolic
                lrwxrwxrwx  1 root root    8 Jul 31 18:03 symbolic1 -> symbolic
                lrwxrwxrwx  1 root root   12 Jul 31 18:01 symbolic1.txt -> symbolic.txt
                -rw-r--r--  1 root root    0 Jul 31 18:00 symbolic.txt
                [root@localhost test]# rm -f symbolic.txt 
                [root@localhost test]# ls -l
                total 4
                drwxr-xr-x 10 root root 4096 Jul 31 18:01 symbolic
                lrwxrwxrwx  1 root root    8 Jul 31 18:03 symbolic1 -> symbolic
                lrwxrwxrwx  1 root root   12 Jul 31 18:01 symbolic1.txt -> symbolic.txt
                [root@localhost test]#

 

 

总结:从上边可以看出硬连接文件有两个限制:1.不允许给目录创建硬连接;2.只允许在同一个文件系统中的文件之间才能创建链接。而软链接没有上面两个限制,可以对目录进行链接,同时也可以跨越分区进行链接。硬连接源文件删除,链接文件仍然可以使用,软链接源文件删除,链接文件失效。相同点是,仅链接文件的删除,不会影响源文件的内容。

 

本文出自 “11880696” 博客,转载请与作者联系!

Linux重要概念之软链接和硬连接

标签:软链接   硬连接   

原文地址:http://11890696.blog.51cto.com/11880696/1832293

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!