Linux 连接文件

Linux 的连接文件有两种

1. symbolic link(符号连接)

类似 Windows 的快捷方式功能的文件,可以快速连接到目标文件

2. hard link(硬连接)

通过文件系统的 inode 连接来产生新文件名,而不是产生新文件


一、hard link

在某个目录下新建一条文件名连接到某 inode 号码的关联记录

eg:

[root@www ~]# ln /etc/crontab crontab
[root@www ~]# ll -i /etc/crontab /root/crontab

连接数变为了2

两个文件的权限,属性完全一样

如果此时删除任何一个文件名,inode 和 block 都还存在,可以通过另一个文件名读取到正确的文件数据

无论使用哪个文件名进行编辑,均能进行数据的修改

hard link 只是在某个目录下的 block 多写入了一个关连数据,不增加 inode 也不耗用 block 数量

但是 hard link 是有限制的

1. 不能跨文件系统

2. 不能连接到目录

二、symbolic link

创建一个独立的文件,该文件会让数据的读取指向它连接的那个文件的文件名,连接文件中会写上目标文件的文件名

当源文件被删除后,连接文件也会无法打开

修改连接文件后,源文件也跟着变

eg:

[root@www ~]# ln -s /etc/crontab crontab2
[root@www ~]# ll -i /etc/crontab /root/crontab2

两个文件指向不同的 inode 号码

symbolic link 所创建的文件为一个独立的新文件,会占用 inode 和 block


hard link 安全但是限制多

symbolic link 使用范围广

三、ln 命令

[root@www ~]# ln [-sf] 源文件 目标文件
# -s:不加参数表示 hard link,加上 -s 表示 symbolic link
# -f:如果目标文件存在,直接删除后创建

四、关于目录的连接数量

新建目录时,新目录的连接数为 2,上层目录的连接数会增加 1


新建一个 /tmp/test 目录时,会有三个东西:

/tmp/test

/tmp/test/.

/tmp/test/..

前两个是一样的,都代表 /tmp/test 目录,而第三个代表了 /tmp 目录

所以有两个连接指向了新目录 /tmp/test,一个指向了上层目录 /tmp

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值