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

Linux硬链接、软链接的创建及两者的区别

时间:2016-08-01 23:19:57      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:linux   区别   硬链接   软链接   ln   

一、硬链接

链接数就是名字的数量:

ln(link) 硬链接,多个相同的inode文件(同分区),多个硬链接文件的存在在硬盘上只占用一个文件的容量。

创建的硬链接是平等的,inode相同,删除某一个互不影响,其他文件仍然可以使用。

硬链接的本质:给一个文件创建多个名字。

 

创建多个硬链接,观察链接数的变化(+1),链接数是几就是有几个文件名。

同一分区中,同一个inode号必定是一个文件。

 

原始的文件

[root@CentOS7 testdir]# ll -iman.txt
15 -rw-r--r--.  1 root root 15978 Aug  8  2008man.txt


 

创建第一个硬链接

[root@CentOS7 testdir]# lnman.txt test/f11
[root@CentOS7 testdir]# ll -iman.txt  test/f11 
15 -rw-r--r--. 2 root root15978 Aug  8  2008 man.txt
15 -rw-r--r--. 2 root root15978 Aug  8  2008 test/f11


 

创建第二个硬链接

[root@CentOS7 testdir]# lnman.txt testdir/f22
[root@CentOS7 testdir]# ll -iman.txt testdir/f22 test/f11 
15 -rw-r--r--. 3 root root15978 Aug  8  2008 man.txt
15 -rw-r--r--. 3 root root15978 Aug  8  2008 testdir/f22
15 -rw-r--r--. 3 root root15978 Aug  8  2008 test/f11


当对一个文件创建多个硬链接时,所有文件的inode相同,权限、大小、时间等属性相同。

 

[root@CentOS7 testdir]# echo"aaaaaaaaaaaaaaaaaaa" >man.txt
[root@CentOS7 testdir]# ll -itestdir/f22 test/f11 man.txt test/f
15 -rw-r--r--. 4 root root 8Jul 29 09:49 man.txt
15 -rw-r--r--. 4 root root 8Jul 29 09:49 testdir/f22
15 -rw-r--r--. 4 root root 8Jul 29 09:49 test/f
15 -rw-r--r--. 4 root root 8Jul 29 09:49 test/f11


当向一个文件写入数据,其他文件的属性内容等也会发生变化

 

[root@CentOS7 testdir]# lnman.txt /roo/a
ln: creating hard link`/roo/a‘ => `man.txt‘: No such file or directory


硬链接不能跨分区,跨设备创建

 

[root@CentOS7 testdir]# lnHelp/ H
ln: `Help/‘: hard link notallowed for directory


硬链接不能针对目录

 

[root@CentOS7 testdir]# ll -iman.txt man
131 -rw-r--r--. 6 root root3256 Aug  1 16:54 man
131 -rw-r--r--. 6 root root3256 Aug  1 16:54 man.txt
[root@CentOS7 testdir]# rm -fman.txt 
[root@CentOS7 testdir]# tailman
  -Z, --ditroff              use groff and force it to produceditroff
 
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version
    
Mandatory or optionalarguments to long options are also mandatory or optional
for any corresponding shortoptions.
 
Report bugs tocjwatson@debian.org.


当删除原始文件后,链接文件仍然可以查看

 

 

二、软(soft)链接:

软链接相当于Windows的快捷方式

[root@CentOS7 testdir]# ln -sman.txt man
[root@CentOS7 testdir]# ls-li man.txt man
12 lrwxrwxrwx. 1 root root 7Jul 29 10:04 man -> man.txt
15 -rw-r--r--. 4 root root 8Jul 29 09:49 man.txt


创建软链接文件,链接文件会以绿色字体标识并指向原文件,通过观察可以发现两个文件的inode编号不同

 

对原始文件创建软链接文件

[root@CentOS7 testdir]# ln –sman.txt /roo/man.txt
[root@CentOS7 testdir]# ll/root/man.txt
lrwxrwxrwx. 1 root root  7 Aug 1 16:55  /root/man.txt ->man.txt
[root@CentOS7 testdir]# ln –s../../testdir/man.txt /root/man1
[root@CentOS7 testdir]# ll/root/man1
lrwxrwxrwx. 1 root root  9 Aug 1 16:56 /root/man1 -> ../../testdir/man.txt
 
[root@CentOS7 testdir]# ln -s/testdir/ /root/test1
[root@CentOS7 testdir]# ll -d/testdir/ /root/test1
lrwxrwxrwx. 1 root root  9 Aug 1 17:02 /root/test1 -> /testdir/
drwxr-xr-x. 3 root root 34Aug  1 16:53 /testdir/


通过上面的实例可以发现软链接可以针对目录,跨分区创建,并且创建的时候要注意路径的问题,如果路径错误,链接文件会保存显示的

软链接时需要注意绝对路径和相对路径,相对于软链接的路径而不是当前目录的路径(指向相对于当前工作目录或某目录的位置)

 

[root@CentOS7 testdir]# ln -s/testdir/man /root/111111
[root@CentOS7 testdir]# ll -i/testdir/man /root/111111
105103873 lrwxrwxrwx. 1 rootroot   12 Aug  1 17:16 /root/111111 -> /testdir/man
      131 -rw-r--r--. 5 root root 3256 Aug  1 16:54 /testdir/man
[root@CentOS7 testdir]# rm -f/testdir/man 
[root@CentOS7 testdir]# ll/testdir/man /root/111111 
ls: cannot access/testdir/man: No such file or directory
lrwxrwxrwx. 1 root root 12Aug  1 17:16 /root/111111 ->/testdir/man
[root@CentOS7 testdir]# cat/root/111111 
cat: /root/111111: No suchfile or directory


当删除原始文件后,创建的软链接文件将不能访问

 

三、软硬链接的区别:

软链接和硬链接的区别主要在于:删除原始文件后,软链接将失效,但硬链接仍然可用;软链接适用于文件或目录,但硬链接只可用于文件,不能为目录建立硬链接;软链接与原始文件可以位于不同的文件系统中,但硬链接必须与原始文件在同一文件系统(如一个Linux分区)内。

 

 


本文出自 “Linux路上” 博客,请务必保留此出处http://dreamlinuxc.blog.51cto.com/5733156/1833082

Linux硬链接、软链接的创建及两者的区别

标签:linux   区别   硬链接   软链接   ln   

原文地址:http://dreamlinuxc.blog.51cto.com/5733156/1833082

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