软链接与硬链接


软链接与硬链接

读取软链接的内容:

硬链接用了同一个inode(inode属于VFS的四大组件之一,应该可以理解为是一个通用的结构体,但是找到inode之后的具体访问应该就要涉及不同文件系统类型了),所以硬链接不能跨文件系统吧;

而对于软链接则不然,它相当于两个独立的文件,先从软链接文件中读出文本内容,再根据这个文本内容进行二次访问,所以软链接是可以跨文件系统的。

cp一个软链接

博士学长提醒了我一个比较需要注意的问题:就是如果一个目录dir是软链接,那么一定不要cp这个目录(cp dir .),而是要cp dir/* .,否则会只拷贝了软链接过来,删除或者修改文件则还是在原来的目录下进行的;

先说结论:

  1. 对软链接的文件copy,得到的是一个新的原文件的副本;
  2. 对软链接的目录copy,得到的是一个新的指向原目录的软链接;
  3. 对软链接的目录cp -r,得到的仍然是一个新的指向原目录的软链接;(其实由于参数是一个软链接文件,所以这里的-r参数根本就没有作用)

参考

http://baidu1133.com/1688.html

https://github.com/Kevin-fqh/learning-k8s-source-code/blob/master/Linux/(07)cp%E3%80%81mv%E3%80%81rm%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0.md

https://github.com/coreutils/coreutils/blob/master/src/cp.c


文章作者: q1ming
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 q1ming !
  目录