Linux硬链接和软连接
1.1介绍
硬链接:(hard link)
只针对于文件,通过索引节点来进行链接,在系统每一个文件和目录都会有一个inode索引节点,可以通过ls –il来查看当前目录下所有文件和目录的inode,而系统中的所有文件都不会有相同的indoe。如果有相同的indoe那么这个文件链接着另一个文 件,内容是相同的并同步,称为硬链接。可以使用ls –l命令显示出它的硬链接数。删掉源文件,硬链接文件正常使用。
软连接:(symbolic link)也称为符号链接
文件和目录都可以,软连接类似于windows下的快捷方式,删掉源文件后,软连接将不能正常使用。
1.2实践
创建硬链接
#ln 源文件 目标文件
创建软连接
#ln –s 源文件 目标文件
1.2.1硬链接
#mkdir /test #cd /test #touch aaa.txt #echo “I am system administrator” >> aaa.txt #ln aaa.txt /test/aaa.txt_hard_link #ls -il 1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt 1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt_hard_link
可以看到两个文件的索引节点完全相同,而且硬链接数为2,文件本身也是1个硬链接数,每增加一个硬链接就加1,而且里面的内容完全相同
#mkdir bbb #ln bbb /test/bbb.txt_hard_link ln: `bbb': hard link not allowed for directory
硬链接是不能对目录操作
如果删掉aaa.txt源文件,它的硬链接文件aaa.txt_hard_link可以正常工作
1.2.2软链接
#ln –s aaa.txt /test/aaa.txt_soft_link #ls –il 1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt 1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt_hard_link 1144065 lrwxrwxrwx 1 root root 7 Feb 20 20:55 aaa.txt_soft_link -> aaa.txt
文件类型是l链接文件,
可以对文件或目录使用软连接,删掉源文件aaa.txt.它的软连接文件aaa.txt_soft_link不能正常使用
1.3 作用
软链接:可以简短路径和文件名等
硬链接:可以对数据备份等,
文件链接数:创建出的新文件它的硬链接数是1,文件本身是一个硬链接。
目录链接数:目录硬链接是2因为目录本身也是一个硬链接,目录里的.点(当前目录)也是一个硬链接