Linux之链接命令

Posted by 程序亦非猿 on 2015-08-30

链接命令: ln

ln

链接分两种:

  1. 软链接 -s (soft)
  2. 硬链接

硬链接

特征:
硬链接

硬链接练习

请无视中间的vi命令,因为还没有学习vim

对于硬链接自己的理解备忘:

  1. 相同的硬连接文件指向同一片地址(inode一样),查询的block是一样的
  2. 修改其中一个文件,其实改的是地址所对应的内容,所以所有指向这地址的文件都”一起修改了”
  3. 删除其中某个不会影响其他文件的使用,因为地址的内存依然在
  4. 建立硬链接影响文件被引用的计数(+1)(该计数就是ll看到的 文件权限命令后的那个数字)
  5. 为什么会有引用计数呢?个人觉得正因为硬链接的inode跟block一样,所以可以通过计数来判断block是否还有引用,来决定是否删除数据(感觉像是gc,没有强引用了就代表可以回收了)
  6. 不推荐硬链接

软链接

软链接

软链接练习

理解备忘:

  1. 推荐使用
  2. 源文件删除后影响软链接的使用(就像失去源文件的快捷方式)
  3. 软链接拥有自己的inode和block,存的是指向源文件inode的信息,再通过源文件inode的信息找到内容,所以当源文件被删时,软链接也跟着失效了
  4. 修改软链接也同样影响硬链接以及源文件,反之亦然
  5. 软链接的文件类型是l,并且它的权限跟随源文件,而并非是ll后所看到的那样!
  6. 软链接要写绝对路径,默认会在当前文件目录下找,如果找不到就会报错!!(试了MacOS 它能找到 - -!)

软硬链接区别的个人理解:

硬链接就如我跟我妈,拥有相同的住址(inode)指向同一个block(我家),我装修了我家,我妈妈的家理所当然的跟着变了,我不见了(被删了)也不影响通过我妈找我家!

而软链接则像是我跟我的朋友的关系,他拥有自己的inode以及block,他可以用他们来找到我,然后通过我再找到我家(假设这里用的微博,朋友嘛告诉他家在哪里也正常,只不过他脑子不好,每次问完就忘记).有一天,他送给我了一份礼物,我放家里了,我妈回家也看得到(通过软链接修改,也影响其他的硬链接,其实改的就是我家!~).
有一天我没上网,也就上不了微博,我朋友找不到我了(我被删了),那么朋友也找不到我家了(源文件被删,软链接跟着失效了)

至于绝对路径,那就更好说啦!~比如我告诉我朋友我家在A村,但是全国这么多A村,他就懵b了…
纯属个人理解~