> CentOS > CentOS入门 >

CentOS常用基本命令 ln

这篇博客讲解Linux链接文件 ln。

    Linux链接文件类似于Windows下的快捷方式

    链接文件分为软链接和硬链接。 

 

  • 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
  • 硬链接:硬链接只能链接普通文件,不能链接目录。
    使用格式:
  • ln 源文件 链接文件
  • ln -s 源文件 链接文件
    如果 没有 -s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在的,所以-s 选项是更常见的形式。
    注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
    
    软链接例:在目录A下面有一个a.txt 文件,里面有内容"hello world ,hello bo!" 。使用 ln -s a.txt softlink_a.txt 命令生成一个链接文件softlink_a.txt(下图中淡蓝色文件),使用cat 命令查看文件内容"hello world ,hello bo" ,之后使用 mv 命令删除掉源文件 a.tx t。使用 ls 命令发现softlink_a.txt文件变成红色。在次使用 cat 命令查看 softlink_a.txt内容时出现 “No such file or directory”,说明该链接已经失效。
    
   
  
    硬链接例:在目录A下创建一个b.txt,写入内容“hello ,I am b.txt!” ,之后使用命令 ln b.txt  hardlink_b.txt 。查看hardlink_b.txt,与b.txt内容相同。这个时候修改hardlink_b.txt,查看hardlink_b.txt内容“hello ,I am b.txt!I am old file!”。在查看b.txt,内容与hardlink_b.txt文件相同,可见该文件的内容也得到修改。使用 rm b.txt 删除b.txt。 这个时候在查看 hardlink_b.txt,内容依旧不变。
    
    
    原理图:
    
    
    上图中 a.txx 指向文件中的数据,软链接softlink_a.txt 指向 a.txt。所以当a.txt 删除后,软链接失效。硬链接handlink_a.txt同样指向数据块,所以,当a.txt文件删除后,handlink_a.txt依旧指向文件中的数据。
 

(责任编辑:IT)