练习笔记-硬链接、软链接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. 文件类型 硬链接:和源文件相同 软链接:链接文件和源文件无关