Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6068083
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类:

2012-11-07 05:31:01

前面介绍过硬链接与软链接的概念,在这里,在练习一下下它的内涵。
1、ln  [-sf]  原文件  目标文件
参数:-s:如果ln不加任何参数就进行链接,那么就是硬链接,-s就是符号链接
          -f:如果目标文件存在时,就主动将目标文件直接删除后再建立。
例一:将/etc/passwd复制到/tmp中,并且观察inode与块:
root@dum-ThinkPad-E425:/tmp# cd /tmp
root@dum-ThinkPad-E425:/tmp# cp -a /etc/passwd .
root@dum-ThinkPad-E425:/tmp# du -sb ; df -i .
71849 .       (先注意一下这里的容量是多少)
文件系统            Inode  已用(I)  可用(I) 已用(I)%% 挂载点
/dev/sda1            1222992  350190  872802   29% /
利用du 与df检查当前的参数,du -sb是计算整个/tmp下面有多少字节容量。

例二:将/tmp/passwd创建硬链接成为passwd-hd文件
root@dum-ThinkPad-E425:/tmp# ln passwd passwd-hd
root@dum-ThinkPad-E425:/tmp# du -sb ; df -i .
71849 .
文件系统            Inode  已用(I)  可用(I) 已用(I)%% 挂载点
/dev/sda1            1222992  350190  872802   29% /
仔细看看,即使在/tmp中多了一个文件,整个inode与块的容量并没有改变。
root@dum-ThinkPad-E425:/tmp# ls -il passwd*
412307 -rw-r--r-- 2 root root 1642 2012-07-31 18:38 passwd
412307 -rw-r--r-- 2 root root 1642 2012-07-31 18:38 passwd-hd
看一下原来这两个文件是指向同一个inode,这个是重点,另外,第二兰的链接数也会增加。
fu hao lian jie

例三:将/tmp/passwd建立一个符号链接
root@dum-ThinkPad-E425:/tmp# ln -s passwd passwd-so
root@dum-ThinkPad-E425:/tmp# ls -il passwd*
412307 -rw-r--r-- 2 root root 1642 2012-07-31 18:38 passwd
412307 -rw-r--r-- 2 root root 1642 2012-07-31 18:38 passwd-hd
412308 lrwxrwxrwx 1 root root    6 2012-11-02 20:58 passwd-so -> passwd
仔细看,这个passwd-so指向的inode号不同了,这是一个新的文件,这个文件的内容是指向passwd的,可以看到这个文件的大小是6个字符,这个 链接文件的内容只是填写链接的目标文件文件名而已,所以,链接文件名(有时候含路径)有多长,文件就有多大。
root@dum-ThinkPad-E425:/tmp# du -sb ; df -i .
71855 .
文件系统            Inode  已用(I)  可用(I) 已用(I)%% 挂载点
/dev/sda1            1222992  350191  872801   29% /
整个容量与inode使用数都改变,确实如此。

例四:删除原文件passwd,其他的两个文件是否可以打开?
root@dum-ThinkPad-E425:/tmp# rm passwd
root@dum-ThinkPad-E425:/tmp# cat passwd-hd
............................显示正常
root@dum-ThinkPad-E425:/tmp# cat passwd-so
cat: passwd-so: 没有那个文件或目录
竟然无法正常打开这个文件。

注意使用ln如果不用任何参数的话,就是硬链接,如上面的情况,增加了硬链接之后,可以发现使用ls -l时,显示的链接那一兰属性增加了,这个时候如果去掉passwd,passwd-hd的内容还是跟原来一样,但是passwd-so就会找不到该文件。
如果ln -s,所创建的就类似windows的快捷方式(符号链接,较常用)。当修改Linux下的链接文件时,更改的其实就是原始文件,所以,不论原始文件链接到哪里,只要修改了链接文件,原始文件就跟着变,以上面为例,由于使用-s参数建立一个名为passwd-so的文件,则修改passwd-so时,其内容与passwd完全相同,并且,当存储之后,被改变的将是passwd文件。
阅读(786) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~