【Linux】Linux 连接文件

Linux 下有两种连接文件的方式,即硬连接和符号连接(软连接)。
ln 是创建连接文件的命令;
在这里插入图片描述

硬连接

硬连接是通过文件系统的inode连接来产生新的文件名,而不是产生新文件。inode 是记录文件属性的,一个文件有一个 inode,相当于文件的ID,查找文件的时候,要先找到 inode,然后才能读出文件的内容。

硬连接是多个文件都指向同一个 inode;

ll -i
ll --inode        //print the index number of each file

在这里插入图片描述
具有相同 inode 的多个文件互为硬连接文件,创建硬连接相当于文件实体多了入口;
在这里插入图片描述
对于硬连接文件,只有在删除了源文件以及所对应的所有硬连接文件,文件实体才会被删除,根据硬连接的特点,可以为文件创建硬连接防止文件误删;
在这里插入图片描述
不论修改原文件还是连接文件,另一个文件的数据都会被改变;
修改 hello1.c 的内容如下:
在这里插入图片描述
由于 hello.c 与 hello1.c 互为硬连接文件,仅仅修改 hello1.c 的内容也会导致 hello.c 的内容发生的改变;
在这里插入图片描述
硬连接不能跨文件系统,也不能连接到目录,由于以上这些限制,硬连接其实是不常用的。

符号连接(软连接)

符号连接类似于 Windows 中的快捷方式,符号连接相当于创建了一个独立的文件,这个文件会让数据读取指向它连接的那个文件的文件名;
创建符号连接时,源文件的路径一定要使用绝对路径,可以防止出错,若不使用绝对路径,拷贝的时候会出问题。

ln -s                          //创建软连接的命令
ln -s /home/zsw/hello hello2   //这里是原文件的路径 /home/zsw/hello

//拷贝的时候要加 -d 若属于link file,则复制为link file,而非文件本身
cp -d hello2 lntest/           

在这里插入图片描述
在这里插入图片描述
符号连接文件通过 -> 来指示具体的连接文件;
在这里插入图片描述
删除原文件后,连接文件也打不开了;
在这里插入图片描述
不同于硬连接的是,符号连接可以连接到目录,也可以跨文件系统。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值