zoukankan      html  css  js  c++  java
  • ln 软链接与硬链接

    原文地址:http://www.dutor.net/index.php/2010/07/symbol-hard-links/

      Linux/Unix中有两种链接,硬链接和软链接,均由ln命令来创建。

    ln -s /home/m/.vimrc /media/Elements/115/vimrc

    软链接

      软链接使用ln命令的-s选项创建:

    1
    
    ln -s source filename #创建source文件的软链接target(目的地址)

      软链接类似于Windows中的快捷方式,内部保存的是源文件的路径,路径可以是相对路径,也可以是绝对路径:

    1
    2
    3
    4
    5
    6
    
    dutor@dutor-desktop:~$ ln -s gvim.tgz gvim
    dutor@dutor-desktop:~$ ln -s /home/dutor/gvim.tgz gvim2
    dutor@dutor-desktop:~$ ll gvim* # alias ll='ls -l'
    lrwxrwxrwx 1 dutor dutor    8 2010-07-01 20:32 gvim -> gvim.tgz
    lrwxrwxrwx 1 dutor dutor   20 2010-07-01 20:33 gvim2 -> /home/dutor/gvim.tgz
    -rw-r--r-- 1 dutor dutor 8.5M 2010-06-29 23:06 gvim.tgz

      软链接应用十分广泛。
      在文件系统中多处共享同一个较大文件时,使用软链接就可以避免创建多个副本。
      维护动态库文件的版本时,使用软链接,在升级库文件后,只需修改软链接的源文件,而使用该库的程序则不需要修改。

    硬链接

      不带有任何选项的ln命令即可创建硬链接:

    1
    
    ln source target #创建source文件的硬链接target

      硬链接创建后,链接文件与源文件没有主次之分,文件系统中它们都和同一个inode相关联,即具有相同的inode号:

    1
    2
    3
    4
    
    dutor@dutor-desktop:~$ ln gvim.tgz gvim
    dutor@dutor-desktop:~$ ll -i gvim*
    1048032 -rw-r--r-- 2 dutor dutor 8.5M 2010-06-29 23:06 gvim # 第3个域代表该文件的链接数
    1048032 -rw-r--r-- 2 dutor dutor 8.5M 2010-06-29 23:06 gvim.tgz

      因此,系统不允许用户为目录创建硬件链接,否则,目录树就不再是有向无环的了。只许州官放火,不许百姓点灯,系统却可以为目录“创建”硬链接(系统知道自己在做什么,却不知用户会做什么),那就是.和..分别指向当前目录和上级目录。因此每个目录的链接数至少是2.

      另外,由于硬链接的实现依赖于特定的文件系统,因此不可以跨文件系统。而软链接是基于路径的,所以只要是挂载在系统目录树中的文件或目录,都可以创建软链接。

  • 相关阅读:
    抽象方法真的不能实例化么?
    java中静态属性和和静态方法的继承问题 以及多态的实质
    Java中数据类型转换问题
    Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
    java的static块执行时机
    代理服务器:正向代理和反向代理
    阿里巴巴的一些面试题(无答案)
    pl/sql实现打印九九乘法表
    java中的标记接口(标签接口)
    spring boot中log4j冲突问题和解决办法
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2128918.html
Copyright © 2011-2022 走看看