1.概念
硬链接:给一个文件创建硬链接(hard links)相当于给它取了一个别名,文件的节点(inode)并没有改变,硬链接不占用内存空间。
ln [源文件] [链接文件]
echo "this is source file" >f1
ln f1 f2 #创建硬链接
ln -s f1 f3 #创建软链接
ls -li #-l 查看所有文件,-i 查看文件节点
rm -rf f2 删除链接文件
软链接:给一个文件创建软链接(symbolic links)相当于给它创建了一个快捷方式,这个快捷方式本身也是个文件,有自己的节点,当然也占用一定的磁盘空间。
ln -s [源文件] [链接文件]
ls -li
405209676 -rw-r--r--. 2 usrname root 20 Oct 10 20:52 f1
405209676 -rw-r--r--. 2 usrname root 20 Oct 10 20:52 f2
405209665 lrwxrwxrwx. 1 usrname root 2 Oct 10 20:52 f3 -> f1 #第三列的2表示有2个文件名链接到405209676这个inode;软链文件的大小是2字节,其实就是f1文件名的大小。
2.应用上的相同点
对链接文件内容作的任何更改都会同步到源文件中,反之亦然。
删除链接文件并不会影响源文件。
3.应用上的不同点:
硬链接能防止误删:删除源文件,硬链文件还在,软链文件则同时被删除。
硬链接文件有两个限制
1)不允许给目录创建硬链接;
2)只有在同一文件系统中的文件之间才能创建链接。
但是创建链接有什么用呢?无非就是和copy相比,少占用内存;多条路径防止误删;和直接引用相比,省去给出路径的繁琐。
参考:
https://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
网友评论