链接文件

本文解析了Linux中的两种链接:符号链接和硬链接的概念及区别。详细介绍了inode和目录条目的作用,并对比了两种链接的创建方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Linux中,链接有两种:符号链接(symbolic link)和硬链接(hard link)。在具体了解这两种链接之前,我们先要简要了解两个概念:inode和目录条目:

161154_UewM_3127489.png161154_la81_3127489.png161154_7GrS_3127489.png161154_U7Si_3127489.png161154_1mxl_3127489.png161154_6Zfj_3127489.png

161226_Jp0o_3127489.png161227_nYBs_3127489.png161227_4x04_3127489.png161227_e2wr_3127489.png161227_XYRi_3127489.png

l 在Linux中,一个文件本身的数据总是放在在一个块(block)或者块的集合中。文件的信息(包括文件类型、读写权限、文件所有者、文件组、文件大小、文件链接数目,文件时间戳等)放在在一个 inode 中,一个文件只对应一个inode,而且这个inode在本文件系统内是惟一的。

l 在Linux中,一个目录文件总是包含一个目录条目清单,所有此目录中的文件或者子目录都体现为这个目录条目清单中的一个目录条目,目录条目包含这个个文件名或目录名,以及指向该文件或目录的 inode 的指针。

161250_7aiX_3127489.png161250_YHhf_3127489.png161250_unBU_3127489.png161250_Ekgd_3127489.png

一个硬链接仅仅是文件或目录的一个附加目录条目,允许同一文件或目录有多个名字。

而一个符号链接是指向包含另一目录条目的文件的一个目录条目。符号链接也称为 symlinks。通俗来说,文件的硬链接就可以理解为文件的一个别名,而符号链接则可以视为文件的一个快捷方式。  

 

25214609_2SO3.png

 
 

命令

 
    

用法:ln [选项]... 目标链接名        (第一种格式)

 

 或:ln [选项]... 目标                    (第二种格式)

 

 或:ln [选项]... 目标... 目录        (第三种格式)

 
 

在第一种格式中,创建指定名称且指向指定目标链接。

 

在第二种格式中,在当前目录创建指向目标位置的链接。

 

在第三种格式中,在指定目录中创建指向指定目标的链接。

 

默认创建硬链接,当使用-s 时创建符号链接。当创建硬链接时每个指定的目标都必须存在。符号链接可以指向任意的位置(包括不存在的位置)。

 

¨       -d   创建指向目录的硬链接(只适用于超级用户)

¨       -f,   强行覆盖任何已存在的目标文件

¨       -i    覆盖文件前进行确认

¨       -s   创建符号链接

   

       

 

25214609_FzxA.png

 
 

注意

 
  

¨       普通用户没有创建目录硬链接的权限,只有根用户可以通过“ln –f”命令强制为目录创建硬链接

 

¨       虽然根用户是可以为目录创建硬链接的。但是我们不推荐这样做,因为创建目录硬链接有可能会在文件系统中引入目录遍历的死循环而造成文件系统的混乱,具体原因可参见下面的链接http://c2.com/cgi/wiki?HardLink

 

¨       例外情况是每个目录中目录本身及其父目录( ..)这两个硬链接。

 

   

 

25214609_FzxA.png

 
 

注意

 
  

¨       删除一个符号链接不会影响到这个符号链接指向的目标文件或目录;

 

¨       反过来,删除、移动或者重命名某个符号链接所指向的目标文件或目录不会导致这个符号链接被删除,只会让这个符号链接“断裂”。

 

  

 

25214609_FzxA.png

 
 

注意

 
  

¨       如果一个文件有多个硬链接,仅在其最后一个硬链接被删除且硬链接数为 0 时文件才会被真正从文件系统中删除;

 

¨       由于inode 仅在特定文件系统内是惟一的,因此硬链接不能够跨越文件系统;

 

¨       符号链接没有上面的限制,具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

 

 

 

 

 

 

符号链接:::    类似于windows中的快捷键

 

 

转载于:https://my.oschina.net/u/3127489/blog/1543098

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值