连接文件ln的使用方法

 

连接文件有点类似Windows的“快捷方式”。即,很多的连接文件(link file)其实都指向同一个源文件(source file)。
连接文件分为:硬连接   和   符号连接   两种。(这两种连接文件的结构完全不一样

[1] 硬连接(实际连接)

什么是硬连接?
硬连接只是在某个目录下新增一个该文件的关联数据而已。
例如:
假设我的/root/crontab是一个硬连接的文件,它连接到/etc/crontab文件,即/root/crontab与/etc/crontab是同一个文件,只是有两个目录(/etc和/root)记录了crontab文件的关联数据。更直白点儿地说,由/etc目录所记录的关联数据可知,crontab的inode放在A处,而/root目录下的关联数据,crontab同样也指到A处的inode,所以,crontab文件的inode与块都没有改变,只是有两个目录记录了关联数据。

使用硬连接的好处?
最大的好处就是“安全”。如同上述的/root/crontab与/etc/crontab两个文件,不管删除哪一个文件,其实仅删除目录下面的文件关联数据,并没有更改源文件的inode与块数据。而且,不论由哪个目录连接到正确的crontab的inode与块,都可以正确无误地进行数据的修改。
一般来说,使用硬连接设置连接文件时,磁盘空间与inode的数目都不会改变。
(注意:也肯能会改变。那就是当目录的块被用完时,就可能会新加一个块来记录,而导致磁盘空间的变化。不过,一般硬连接所用掉的关联数据量很小,所以通常不会改变inode与磁盘空间的大小。)

硬连接的限制
由于硬连接是在同一个分区上建立数据关联,所以硬连接是有限制的:
一是:不能跨文件系统
二是:不能连接目录

总结
由此可知,硬连接只是在某个目录下的块多写入一个关联数据,所以并不会用掉inode与磁盘空间。



[2] 符号连接(即快捷方式)

符号连接是什么?

符号连接就是在建立一个独立的文件,这个文件会让数据的读取指向它连接的文件内容。
所以,当源文件被删除之后,符号连接的文件不能打开,会一直显示“无法打开某文件”。(注意:符号连接相当于Windows下的快捷方式)
由于符号连接所建立的文件为一个独立的新文件,所以会占用掉inode与块。

总结
由于硬连接的限制太多,包括无法做“目录”的连接,所以用的比较少。而符号连接使用的较多,符号连接可以连接目录。

[3] 动手一试

创建连接文件使用ln命令。 ln   [ -sf ]   源文件   目标文件
参数:
-s:如果ln不加任何参数就进行连接,那么就是硬连接,-s就是符号连接
-f:如果目标文件存在时,就主动将目标文件直接删除后再建立。

试一:将/etc/passwd复制到/tmp中,并且观察inode块
cd /tmp
cp -a /etc/passwd .
du -sb ; df -i .
# 得到/tmp下面有多少字节的容量

试二:将/tmp/passwd创建硬连接成为passwd-hd文件
ln passwd passwd-hd
du -sb ; df -i .
# 对比上面发现没有变化,即使在/tmp中多了一个文件,整个inode与块的容量并没有改变。
ls -il passwd*
# 可以显示,原来是指向同一个inode。另外,第二栏的连接数也会增加。

试三:将/tmp/passwd建立一个符号连接。
ln -s passwd passwd-so
ls -il passwd*
# 可以发现,这个passwd-so指向的inode号不同了。这是一个新的文件。
du -sb ; df -i .
# 显示inode使用数发生变化,即+1。

试四:删除源文件passwd,其他两个文件是否能打开?
rm passwd
cat passwd-hd
# 可以正常显示
cat passwd-so
# 提示没有这个文件或文件夹,无法打开显示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值