Linux硬链接、软链接的介绍及两者的区别

一、硬链接

链接数就是名字的数量:

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

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

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

 

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

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


原始的文件

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

创建第一个硬链接

[root@CentOS7 testdir]# ln man.txt test/f11
[root@CentOS7 testdir]# ll -i man.txt  test/f11 
15 -rw-r--r--. 2 root root 15978 Aug  8  2008 man.txt
15 -rw-r--r--. 2 root root 15978 Aug  8  2008 test/f11

创建第二个硬链接

[root@CentOS7 testdir]# ln man.txt testdir/f22
[root@CentOS7 testdir]# ll -i man.txt testdir/f22 test/f11 
15 -rw-r--r--. 3 root root 15978 Aug  8  2008 man.txt
15 -rw-r--r--. 3 root root 15978 Aug  8  2008 testdir/f22
15 -rw-r--r--. 3 root root 15978 Aug  8  2008 test/f11

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

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

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


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

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


硬链接不能针对目录

[root@CentOS7 testdir]# ln Help/ H
ln: `Help/': hard link not allowed for directory


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

[root@CentOS7 testdir]# ll -i man.txt man
131 -rw-r--r--. 6 root root 3256 Aug  1 16:54 man
131 -rw-r--r--. 6 root root 3256 Aug  1 16:54 man.txt
[root@CentOS7 testdir]# rm -f man.txt 
[root@CentOS7 testdir]# tail man
  -Z, --ditroff              use groff and force it to produce ditroff
 
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version
    
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
 
Report bugs to cjwatson@debian.org.

二、软(soft)链接:

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

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

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

 

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

[root@CentOS7 testdir]# ln –s man.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 34 Aug  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 root root   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 12 Aug  1 17:16 /root/111111 -> /testdir/man
[root@CentOS7 testdir]# cat /root/111111 
cat: /root/111111: No such file or directory

三、软硬链接的区别:

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

 

 

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

(0)
cyh5217cyh5217
上一篇 2016-08-04 21:40
下一篇 2016-08-04 21:40

相关推荐

  • Xtrabackup进行MySQL备份

    使用Xtrabackup进行MySQL备份 一、安装 1、简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。 特点: (1)备份过程快速、可靠; (2)备份过程不会打断正在执行的事务; (3)能够基于压缩等功能节约磁盘空间和流量; (4)自动…

    Linux干货 2017-02-20
  • 第十一周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 一次通信加密过程: 发送方: 1.使用单向加密算法提取生成数据特征码; 2.使用自己的私钥加密特征码附加在数据后面; 3.生成用于对称加密的临时密钥; 4.用此临时密钥加密数据和已经使用私钥加密后的特征码; 5.使用接受方的公钥加密此临时密钥,附加在对称密钥后的数据后方; 接受方: 1.使用自己的私钥解密加密的…

    2017-10-02
  • mysql备份与恢复

    1、mysqldump进行mysqll数据库的备份与还原 命令说明: Schema和数据存储一起、巨大的SQL语句、单个巨大的备份文件 mysqldump: 客户端,通过mysql协议连接至mysqld; mysqldump [options] [db_name [tbl_name …]] shell> mysqldump [options] db…

    Linux干货 2017-03-27
  • Linux基础知识(五)

    本文主要讲述使用grep做模式匹配,具体示例包括: 1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; 3、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行; 4、添加用户b…

    Linux干货 2016-10-23
  • nfs

    NFS 服务 : Network File system 网络文件系统效果: 好像在本机硬盘一样原理: 当用户去访问 映射成本地系统 // 原理 挂载属性: vsftpd 是应用程序,(内核支持) nfs 是一个文件系统应用: 局域网(最多用于) — 依赖网络 应用层 app httpd 80 vsftpd 传输层 tcp/ipinternet层…

    Linux干货 2018-02-05
  • 马哥教育网络班22期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  who | tr -s [[:space:]] | cut -d" " -f1 | sort -u [root@localhost cdrom]# who root     pts/1     &…

    Linux干货 2016-09-07