硬链接与软链接简略

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

你可能感兴趣的:(硬链接与软链接简略)