Kevin_306

练习笔记-硬链接、软链接20201227

 1、硬链接 

硬链接本质上就给一个文件起一个新的名称,实质是同一个文件
创建硬链接会在对应的目录中增加额外的记录项以引用文件
对应于同一文件系统上一个物理文件
每个目录引用相同的inode号
创建时链接数递增
删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文
件被删除
不能跨越驱动器或分区
不支持对目录创建硬链接

格式:

ln filename [linkname ]

举例1:

创建文件夹/data
1
[root@localhost ~]# mkdir /data 2 [root@localhost ~]# cd /data
#在此文件夹创建文件
3 [root@localhost data]# touch f{1..10}.conf 4 [root@localhost data]# ls 5 2.txt f1.conf f3.conf f5.conf f7.conf f9.conf 6 f10.conf f2.conf f4.conf f6.conf f8.conf
#修改f1.conf文件名为f1.conf.link
7 [root@localhost data]# ln f1.conf f1.conf.link
#查看结果,发现多了一个f1.conf.link
8 [root@localhost data]# ll /data/ -i 9 total 4 10 33585344 -rw-r--r--. 1 root root 4 Dec 27 11:42 2.txt 11 33585354 -rw-r--r--. 1 root root 0 Dec 27 11:46 f10.conf 12 33585345 -rw-r--r--. 2 root root 0 Dec 27 11:46 f1.conf 13 33585345 -rw-r--r--. 2 root root 0 Dec 27 11:46 f1.conf.link 14 33585346 -rw-r--r--. 1 root root 0 Dec 27 11:46 f2.conf 15 33585347 -rw-r--r--. 1 root root 0 Dec 27 11:46 f3.conf 16 33585348 -rw-r--r--. 1 root root 0 Dec 27 11:46 f4.conf 17 33585349 -rw-r--r--. 1 root root 0 Dec 27 11:46 f5.conf 18 33585350 -rw-r--r--. 1 root root 0 Dec 27 11:46 f6.conf 19 33585351 -rw-r--r--. 1 root root 0 Dec 27 11:46 f7.conf 20 33585352 -rw-r--r--. 1 root root 0 Dec 27 11:46 f8.conf 21 33585353 -rw-r--r--. 1 root root 0 Dec 27 11:46 f9.conf
#编辑f1.conf,内容为添加了abc
22 [root@localhost data]# nano f1.conf
#查看一下结果,发现数字从0变成5了
23 [root@localhost data]# ll /data/ -i 24 total 12 25 33585344 -rw-r--r--. 1 root root 4 Dec 27 11:42 2.txt 26 33585354 -rw-r--r--. 1 root root 0 Dec 27 11:46 f10.conf 27 33585345 -rw-r--r--. 2 root root 5 Dec 27 11:56 f1.conf 28 33585345 -rw-r--r--. 2 root root 5 Dec 27 11:56 f1.conf.link 29 33585346 -rw-r--r--. 1 root root 0 Dec 27 11:46 f2.conf 30 33585347 -rw-r--r--. 1 root root 0 Dec 27 11:46 f3.conf 31 33585348 -rw-r--r--. 1 root root 0 Dec 27 11:46 f4.conf 32 33585349 -rw-r--r--. 1 root root 0 Dec 27 11:46 f5.conf 33 33585350 -rw-r--r--. 1 root root 0 Dec 27 11:46 f6.conf 34 33585351 -rw-r--r--. 1 root root 0 Dec 27 11:46 f7.conf 35 33585352 -rw-r--r--. 1 root root 0 Dec 27 11:46 f8.conf 36 33585353 -rw-r--r--. 1 root root 0 Dec 27 11:46 f9.conf 37 [root@localhost data]# cat f1.conf 38 abc 39
#编辑f1.conf.link,增加了ABC 40 [root@localhost data]# nano f1.conf.link
#查看一下,数字5变成了9了,文件容量变化了
41 [root@localhost data]# ll /data/ -i 42 total 12 43 33585344 -rw-r--r--. 1 root root 4 Dec 27 11:42 2.txt 44 33585354 -rw-r--r--. 1 root root 0 Dec 27 11:46 f10.conf 45 33585345 -rw-r--r--. 2 root root 9 Dec 27 11:57 f1.conf 46 33585345 -rw-r--r--. 2 root root 9 Dec 27 11:57 f1.conf.link 47 33585346 -rw-r--r--. 1 root root 0 Dec 27 11:46 f2.conf 48 33585347 -rw-r--r--. 1 root root 0 Dec 27 11:46 f3.conf 49 33585348 -rw-r--r--. 1 root root 0 Dec 27 11:46 f4.conf 50 33585349 -rw-r--r--. 1 root root 0 Dec 27 11:46 f5.conf 51 33585350 -rw-r--r--. 1 root root 0 Dec 27 11:46 f6.conf 52 33585351 -rw-r--r--. 1 root root 0 Dec 27 11:46 f7.conf 53 33585352 -rw-r--r--. 1 root root 0 Dec 27 11:46 f8.conf 54 33585353 -rw-r--r--. 1 root root 0 Dec 27 11:46 f9.conf
#验证一下增加的内容是否是一样
55 [root@localhost data]# cat f1.conf.link 56 abc 57 ABC
#确实是一样的,增加了ABC 

2、软链接

一个符号链接指向另一个文件,就像 windows 中快捷方式,软链接文件和原文件本质上不是同一个文件

 软链接特点 :

一个符号链接的内容是它引用文件的名称
可以对目录创建软链接
可以跨分区的文件实现
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的
引用计数
软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录

格式:

ln -s filename [linkname]

举例1:

1.创建文件b.txt的软链接bb.txt 

1 [14:21:11 root@localhost data]#ls
2 b.txt
3 [14:21:16 root@localhost data]#ln -s b.txt bb.txt(#创建软链接)
4 [14:21:22 root@localhost data]#ll
5 total 0
6 lrwxrwxrwx. 1 root root 5 Mar  3 14:21 bb.txt -> b.txt
7 -rw-r--r--. 1 root root 0 Mar  3 14:21 b.txt

 

  2.查看一下内容都是为空的,现在修改其中一个文件,输入hello

1 [14:23:12 root@localhost data]#ls
2 bb.txt  b.txt
3 [14:23:20 root@localhost data]#cat b.txt
4 [14:23:25 root@localhost data]#cat bb.txt
5 [14:23:30 root@localhost data]#vim bb.txt
6 hello

 

  3.查看任意一个文件,发现内容都是一样的

 举例2:相对路径创建的软链接

#绝对路径
ln -s /data/dir /data/dirlink
#相对路径
cd /data
ln -s ../data/dir /root/dirlink
rm -rf /data/dirlink    #删除软链接本身,不会删除源目录内容
rm -rf /data/dirlink/   #删除源目录的文件,不会删除链接文件
#查看链接文件指向的原文件
readlink /data/dirlink

  

 1 [15:20:16 root@localhost ~]#ls 
 2 bb.txt  b.txt
 3 [15:23:46 root@localhost ~]#ll b.txt
 4 -rw-r--r--. 1 root root 0 Mar  3 14:19 b.txt
 5 [15:24:03 root@localhost ~]#ln -s /b.txt /opt/b22.txt
 6 [15:24:34 root@localhost ~]#ll /opt/b22.txt
 7 lrwxrwxrwx. 1 root root 6 Mar  3 15:24 /opt/b22.txt -> /b.txt
#有报错
8 [15:24:46 root@localhost ~]#ln -s data/b.txt /opt/b23.txt
9 [15:25:18 root@localhost ~]#ll /opt/b23.txt 10 lrwxrwxrwx. 1 root root 10 Mar 3 15:25 /opt/b23.txt -> data/b.txt
#有报错
11 [15:25:25 root@localhost ~]#ln -s /data/b.txt /opt/b24.txt
#绝对路径
12 [15:25:42 root@localhost ~]#ll /opt/b24.txt 13 lrwxrwxrwx. 1 root root 11 Mar 3 15:25 /opt/b24.txt -> /data/b.txt 14 [15:25:47 root@localhost ~]#cd /data/ 15 [15:27:13 root@localhost data]#ls 16 bb.txt b.txt 17 [15:27:15 root@localhost data]#ln -s ../data/b.txt /opt/b25.txt
#相对路径
18 [15:27:42 root@localhost data]#ll /opt/b25.txt 19 lrwxrwxrwx. 1 root root 13 Mar 3 15:27 /opt/b25.txt -> ../data/b.txt

 

 硬链接和软链接区别总结:

1. 本质
硬链接:本质是同一个文件起了多个名字
软链接:本质不是同一个文件
2. 跨设备
硬链接:不支持
软链接:支持
3. inode
硬链接:相同
软链接:不同
4. 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5. 文件夹
硬链接:不支持
软链接:支持
6. 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7. 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8. 文件类型
硬链接:和源文件相同
软链接:链接文件和源文件无关

  

posted on 2020-12-27 12:09  熊猫小虾  阅读(167)  评论(0编辑  收藏  举报

导航