硬链接和软连接的区别:
要说明这个问题,先说明下liunx下文件和目录的本质。
在liunx上,目录也是文件的一种,它是储存了一张表的文件。例如有一个叫程序的文件夹,里面有两个文件1和2.在那张目录表内。它的内容是这样的
名称 节点
1 338
2 228
那么什么是节点呢?c语言我们都学过,我们简单地把节点号理解成一个数组的下标,把内存看成一个大数组,每个文件都可以看成一个数组中的一个元素,而知道了节点号,就可以找到了实质的文件内容。
有了以上的认识,就可以进一步地解释硬链接:
硬链接的书写格式是:ln 目标文件名 链接名
那么它的过程是怎么样的呢?
例如我们输入:ln 3 2
那么,在同个目录表下增加一项
名称 节点
1 338
2 228
3 228
这时候,文件3也指向了跟2一样的内存块,也就是说跟2的内容是完全一样的。
而软连接又是怎么回事呢?
这里得说明,软连接和硬链接也是特殊的文件,在liunx中的所有都是以文件表示的,软连接可以看成一个文本文件,它的内容是保存目标文件名的路径地址。
软连接的格式是ln -s 目标文件名 链接名
例如输入 ln -s 4 2
它的执行过程是这样的,先把2文件的路径名复制到4,执行4时,先从中读到2的路径名,找到2这个文件,然后执行2.所以对4文件的操作都是对2文件的操作。
Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。用命令ls -i 可查看节点号
硬链接:(hard link)
只针对于文件,通过索引节点来进行链接,系统中的所有文件都不会有相同的indoe。如果有相同的indoe那么这个文件链接着另一个文件,内容是相同的并同步,称为硬链接。可以使用ls –l命令显示出它的硬链接数。删掉源文件,硬链接文件正常使用。
软连接:(symbolic link)也称为符号链接
文件和目录都可以,软连接类似于windows下的快捷方式,删掉源文件后,软连接将不能正常使用。注意软连接是文件夹,当进入这个软连接下的目录时,执行一些命令比如cp,目录是按源文件目录计算的,而当前所在目录还是在这个物理目录。
创建硬链接:#ln 源文件 目标文件
创建软连接:#ln –s 源文件 目标文件
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可以正常工作
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,文件本身是一个硬链接。
目录链接数:目录硬链接是2因为目录本身也是一个硬链接,目录里的.点(当前目录)也是一个硬链接、
删除链接
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
备注:I节点 :它是UNIX内部用于描述文件特性的数据结构。我们通常称I节点为文件索引结点(信息结点)。i节点 含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址。每一个I节点有它自己的标志号,我们称为文件顺序号。I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截。