Chinaunix首页 | 论坛 | 博客
  • 博客访问: 454624
  • 博文数量: 97
  • 博客积分: 1552
  • 博客等级: 上尉
  • 技术积分: 1091
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-17 17:05
个人简介

专注于大规模运维场景运维工具解决方案。欢迎有这方面兴趣的朋友跟我联系。

文章分类

全部博文(97)

文章存档

2014年(12)

2013年(25)

2012年(60)

我的朋友

分类: LINUX

2013-02-06 13:55:28

存在两种不同类型的链接,软链接和硬链接。硬连接指向的是节点(inode),而软连接指向的是路径(path)

软链接文件

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷 方式差不多。 链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。
命令格式: 
代码: ln [-s] source_path target_path

硬链接文件

info ln 命令告诉您,硬链接是已存在文件的另一个名字,硬连接的命令是:
代码: ln -d existfile newfile //如果不加任何参数,默认情况下是硬链接.
硬链接文件有两个限制:
1、不允许给目录创建硬链接; 
2、只有在同一文件系统中的文件之间才能创建链接。
对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。修改其中一个,与其连接的文件同时被修
改.
代码: 
$ cp /etc/httpd/conf/httpd.conf /usr/sam 
$ ln httpd.conf httpd1.conf 
$ ln -s httpd.conf httpd2.conf
第一条为硬链接,第二条为软链接
代码: 
$ ls -li //查看一个文件或目录的inode,要通过ls 命令的的 -i参数,inode值相同的文件,他们的关系是互为硬链接的关系
代码: 
总用量 80 
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd1.conf 
1077668 lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf ->; httpd.conf 
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd.conf
可以看到,使用ls -li,软连接只产生了10字节的快捷而已,硬连接却实实在在的的拷贝。最前面的inode硬链接和源文件是一样的
,而软链接不一样.对http1.conf进行编辑,可以发现httpd.conf也发生了一样的变化.
代码: 
$ rm httpd.conf
现在删除链接的源文件,来比较不同之处
代码: 
$ ls -l 
总用量 44 
drw-r--r-- 2 sam adm 4096 10月 30 20:14 file6 
-rw-r--r-- 1 sam adm 34890 10月 31 00:57 httpd1.conf 
lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf ->; httpd.conf
发现,httpd2.conf实际已经不存在了,是断链,而httpd1.conf变也了普通文件

阅读(2934) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~