Linux的链接文件
使用ln命令来创建链接文件(link)
Linux链接分两种:硬链接(Hard Link),符号链接(Symbolic Link)
默认情况下,ln命令产生硬链接。
[[email protected] lianxi]# ln -s xiaotong tongtong #符号链接才能为目录建立链接
源文件 目标文件(链接文件)
[[email protected] lianxi]# cd tongtong/
[[email protected] tongtong]# pwd
/lianxi/tongtong
[[email protected] tongtong]# pwd -P 显示tongtong目录所在的真正的路径
/lianxi/xiaotong
1、硬链接(Hard Link)
命令格式:
ln 源文件… 链接文件
硬连接指通过索引节点来进行连接:一个inode号对应多个文件名(一个文件有多个不同的文件名)
作用:
允许一个文件拥有多个有效路径名,建立硬连接,以防止“误删”的功能。
#####文件真正删除的条件是与之相关的所有硬连接文件均被删除。
硬连接的2个限制:
①指向原始文件对应的数据存储位置,不能为目录建立硬链接文件
②硬链接与原始文件必须位于同一分区(文件系统)中
2、软链接(Symbolic Link)符号链接:
命令格式:
ln -s 源文件… 链接文件
-s, --symbolic make symbolic links instead of hard links
一个文件链接到另外一个文件 (类似于Windows的快捷方式)soft
指向原始文件所在的路径(软链接源文件用绝对路径,但用相对路径较好)
原理:
软连接文件实际上是一个特殊的文本文件,其中包含的有另一文件的位置信息。
允许符号链接(经常简写为symlinks)指向位于其他分区、甚至是其他网络硬盘上的某个文件。
[[email protected] lianxi]# touch test #创建一个测试文件test
[[email protected] lianxi]# ln test H_test #创建test 的一个硬连接文件H_test
[[email protected] lianxi]# ln -s test S_test #创建test 的一个符号连接文件S_test
[[email protected] lianxi]# ls -li # -i参数显示文件的inode节点信息
total 0
262146 -rw-r--r-- 2 root root 0 Feb 21 23:31 test
262146 -rw-r--r-- 2 root root 0 Feb 21 23:31 H_test
262196 lrwxrwxrwx 1 root root 4 Feb 21 23:31 S_test -> test
分析:硬连接文件H_test 与原文件test的inode节点相同,均为262146,然而符号连接文件的inode节点不同。
[[email protected] lianxi]# echo "I am test file">>test
[[email protected] lianxi]# cat test
I am test file
[[email protected] lianxi]# cat H_test
I am test file
[[email protected] lianxi]# cat S_test
I am test file
[[email protected] lianxi]# rm -f test
[[email protected] lianxi]# cat H_test
I am test file
[[email protected] lianxi]# cat S_test
cat: S_test: No such file or directory
分析:当删除原始文件test后,硬连接H_test不受影响,但是符号连接S_test文件无效
总结:
①删除原文件,对硬连接文件没有影响,导致符号连接文件(依赖与源文件)失效;
②删除符号连接文件,对源文件、硬链接文件无影响;
③删除硬连接文件,对源文件、符号连接文件也无影响;
④同时删除原文件和硬连接文件,整个文件会真正的被删除。建立硬链接文件起到一定的备份作用。
#####修改任意文件内容,其他链接文件相应的都会被修改