linux中的硬连接和软连接

背景

linux中的文件主要分3块,

- 真正的数据

- 索引节点号(inode index)

- 文件名称

读取文件的顺序是通过文件名称。找到相应的inode。然后通过inode找到相应的数据,进行读取。

连接

当我们须要在不同的文件夹,用到同样的文件时。我们不须要在每个须要的文件夹下都放一个必须同样的文件,我们仅仅要在某个固定的文件夹,放上该文件,然后在 其他的文件夹下用ln命令链接(link)它就能够,不必反复的占用磁盘空间。

硬连接

硬连接就是将多个不同的文件名称指向同一个inode index。这样通过当中的随意一个文件名称。都会訪问到同一份数据。例如以下图所看到的。文件名称1,文件名称2,文件名称3都会通过同一个inode訪问到同一份数据。

软连接

软连接相似windows中的快捷方式。它不是直接连到源文件的inode上的,而是一个新的特殊的文件,它记录了被连的文件名称3的路径。

example

➜  /tmp  ln -s test test1 #symbolic link
➜ /tmp ln test test2 #hard link
➜ /tmp ls -l test*
6508253 -rw-r--r--@ 2 deshengkong wheel 3423 7 10 20:08 test
6534236 -rw-r--r-- 1 deshengkong wheel 103 7 13 10:22 test.php
6544973 lrwxr-xr-x 1 deshengkong wheel 4 7 13 11:13 test1 -> test # symbolic link 该文件的类型是l(link)
6508253 -rw-r--r--@ 2 deshengkong wheel 3423 7 10 20:08 test2 # hard link 该文件的文件类型是普通文件 ➜ /tmp rm test #delete source file
➜ /tmp cat test1 #symbolic link file找不到源文件。所以报错。 cat: test1: No such file or directory
➜ /tmp cat test2 #hard link file 正常

reference

http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html

http://www.cnblogs.com/joeblackzqq/archive/2011/03/20/1989625.html

最新文章

  1. [连载]《C#通讯(串口和网络)框架的设计与实现》- 6.通讯控制器的设计
  2. Spring MVC初次相见
  3. PDO 数据访问抽象层
  4. 如何快速的解决Maven依赖冲突
  5. 侧滑菜单SlidingMenu
  6. js null和undefined
  7. RPI学习--环境搭建_刷卡+wiringPi库安装
  8. JQuery在Ajax的Post提交中国乱码的解决方案
  9. VMware7安装CentOS6.5教程
  10. AngularJS中如果ng-src 图片加载失败怎么办
  11. 【m元素集合的n个元素子集】
  12. 微信小程序已经开放个人开发者申请了,还不快上车?
  13. 一张图解析nvm,npm,nodejs之间的关系
  14. laravel5.4+vue+vux+element的环境搭配
  15. 在eclipse中配置android ndk的自动编译环境builders
  16. java知识点3
  17. quora 的东西就是不一样
  18. Programming | 中/ 英文词频统计(MATLAB实现)
  19. NO.7:别让异常逃离析构函数
  20. python tcp .demo

热门文章

  1. Fiddler常用配置
  2. echars自定义提示框位置
  3. [HAOI2016]找相同字符(SAM+DP)
  4. BZOJ 3376 [Usaco2004 Open]Cube Stacking 方块游戏(带权并查集)
  5. 开源 PHP 项目找队友、顾问、指导、贡献者等等
  6. hdu 1978 记忆化搜索
  7. cocos2d-x-3.2 怎样创建新project
  8. 2015百度之星初赛2 1005 序列变换(LIS变形)
  9. DBCC-->Database Console Commands
  10. 本地代码中使用Java对象