新闻  |   论坛  |   博客  |   在线研讨会
linux的“快捷方式”---link
张阳 | 2008-04-24 15:59:02    阅读:1922   发布文章

Windows下面有快捷方式,那么linux下面有没有与之相对应的东东呢?如果有,那又是什么呢?回答是肯定有的!这就是linux下面的link。Link的功能不少,它主要分为hard link 还有symbolic links。

  一、Hard Links:

  由上一节我们知道:当linux系统要去读取某一个档案的时候,就会先去读取inode table,因为它要知道去哪里读取信息呢!而恰恰inode table中就记载了这些信息。然后再根据inode上的信息去block area上去将数据读出来利用。

  Hard link就是直接再建立一个inode连续到档案放置的block区块,这只是一个映射的意思,真正档案上的东西是不会变的。所以,要查询的时候,不管你利用原来的inode还是利用后来建立的inode都可以被指向这个档案存放的位置。也就是说两个指向会完全一样的。取任意一个inode读取都行的。但是,这样一来会有问题,因为inode是会连续到block区域去的,而目录本身仅仅消耗inode而已,这样 
一来的话,hard link就不能link目录了。所以,Hard link有两个限制:

  不能跨filesystem,因为不同的filesystem有不同的inode table!

  2、 不能link目录!

  二、symbolic links

  symbolic links与Hard link不同的是,它会建立一个独立的档案,而这样档案会让数据读取指向他link的那个档案内容,这样比较好理解一些。因为这个档案是指向要读取的内容的,所以,如果原来的档案被删除的话,那么symbolic links肯定不知道指向哪里了啦!所以symbolic links也会打不开。会一直说:无法打开某档案。

那是不是hard link会比较安全?从某种意义上来讲是的,因为它有两个inode,某一个被杀掉后,只要有一个在,那个档案就还会在。但是我们前面主闻,Harkd link的限制太多了,所以在用途上有比较多的限制。反而symbolic links的用途比较广泛。下面我们就以实例来说明一下:

  在/root下建立一个test文件夹:

  

  建立hard link后的信息为

 
  建立symbol link的信息为

 
  删除原文件后两个link的反应为:

 
  说明:

  要注意一下,如果没有加任何参数的话,那么默认就是Hard Link,像上面说明的情况一样,增加了hard link后,可以发现link那一栏的属性增加了。而如果这样时候不要那个passwd会怎么样呢?这样的话,passwd-hard的内容还会同原来的passwd一样,但是呢,passwd-soft就找不到该档案了。

  但是使用-s参数时,就做成差不多是windows底下的快捷方式的意思了(这就是symbolic link了,很常用的。)但是,需要注意:linux 的link与windows的快捷方式有一样不同,就是,如果在windows下面建立一个快捷方式的时候,你可以改变这样快捷方式的内容,修改任何数据,而你的原始数据,也就是快捷方式所指向的内容不会跟着变。但是,如果你修改linux下的link档案时,那么它的原始档案也会跟着变哦。呵呵。所以不论你的这个原始档会被连续到哪里去,只要你修改了连结档,原始档就会跟着变的哦。以上面为例,由于你使用-s的参数建立一个名为passwd-soft的档案,如果你修改了passwd-soft时,其内容与passwd完全相同,并且,如果修改后你存储了的话,被改变的将是passwd这个档案。

  如果你做了下面这个连结:

  Ln –s /bin/root/bin

  那么,如果你进入/root/bin这个目录下(注意:该目录其实是/bin这个目录,因为我们做了连结档了),所以,如果我们进入/root/bin这个刚刚建立的连结目录,并将其实的数据杀掉的时候,/bin下面的数据就会通通不见了!哈哈,所以说,并不是/root下面的资料都是root的哦。还需要注意一下它的属性呢!

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客