软连接和硬链接的区别讲义.pdf
《软连接和硬链接的区别讲义.pdf》由会员分享,可在线阅读,更多相关《软连接和硬链接的区别讲义.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、linux 硬链接和软链接的区别 简而言之,软链接相当于 windows 中的快捷方式,硬链接相当于一个灾备系统,数据存放在两处,与复制不同 的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外,一处数据如果被删除了,不会影响 到另一处的数据.下面是详细的介绍:硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修 改;对硬链接文件进行读写和删除操作时候,效果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当 成一个普通文件。硬链接文件有两个限制:1、
2、不允许给目录创建硬链接;2、只有在同一文件系统中的文件之间才能创建链接。软连接指向的是路径(path),软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是 任意文件或目录,还可以链接不同文件系统的文件,和 win 下的快捷方式差不多。软链接文件甚至可以链 接不存在的文件,这就产生一般称之为断链的问题(或曰“现象),链接文件甚至可以循环链接自己,类 似于编程语言中的递归。命令格式:ln-s source_path target_path /软链接文件 Source 为源文件 target 为目标文件。ln-d existfile newfile /硬链接文件,如果不加任何参数,默认情况
3、下就是硬链接.Newfile 为不是自己建的系统建的。示例:$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
4、.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 -rw-r-r-1 sam adm 34890 10 月 31 00:57 httpd1.conf lrwxrwxr
5、wx 1 sam adm 10 10月 31 00:58 httpd2.conf-;httpd.conf 发现,httpd2.conf 实际已经不存在了,是断链,而 httpd1.conf 变也了普通文件.一、硬链接 硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配 inode。可以用:ln 命令来建立硬链 接。语法:ln options existingfile newfile lnoptions existingfile-list directory 用法:第一种:为”existingfile”创建硬链接,文件名为”newfile”。第二种:在”directory”目录中,为
6、”existingfile-list”中包含的所有文件创建一个同名的硬链接。常用可选options f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。下面举一些例子:$ls il 13058-rwx-1 longcheng longcheng 48 8月 5 16:38 file1 13059-rwx-1 longcheng longcheng 57 8月 5 16:40 file2$ln file2 file2hard$ls il 13058-rwx-1 longcheng longcheng 48 8月 5 16:38 file1 13059
7、-rwx-2 longcheng longcheng 57 8月 5 16:40 file2 13059-rwx-2 longcheng longcheng 57 8 月 5 16:40 file2hard 注意在创建链接前,file1 显示的链接数目为 1,创建链接后(1)file1 和file1hard 的链接数目都变为 2;(2)file1 和 file1hard 在 inode 号是一样的(3)file1 和 file1hard 显示的文件大小也是一样。可见进行了 ln 命 令的操作结果:file1 和 file1hard 是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建
8、 立文件 file1 的硬链接,就是为 file1 的文件索引节点在当前目录上建立一个新指针。如下图,你可以删除 其中任何一个,如 rm file2,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为 0 时,内核才会把文件内容从磁盘上删 除。还可以在不同目录,但同一文件系统中建立文件的硬链接。设 file1、file2 在目录/home/longcheng/dir1 中,下面的命令,在/home/longcheng 中建立 file2 的硬链接。ln file2/home/longcheng/file2hard 下面的程序,是将 dir1 目录中所有文件,在目
9、录 dir2 中建立硬链接$mkdir dir2$ln/home/longcheng/dir1/*/home/longcheng/dir2 如果使用了 ln f existingfile newfile,如果 newfile 已经存在,则无论原来 newfile 是什么文件,只 用当前用户对它有写权限,newfile 就成为 exisitngfile 的硬链接文件。尽管硬链接节省空间,也是 Linux 系统整合文件系统的传统方式,但是存在一下不足之处:(1)不可以在 不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。虽然很多树上说 root 用户 可以创建,但是笔者在学习过
10、程中发现即使是 root 用户也不能创建,我的系统是 Redhat,内核 2.4、2.6 都试过,在其他系统中不知道是不是可以。二、软链接(符号链接)软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现 在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对 文 件进行链接。建立软链接,只要在 ln 后面加上选项 s,下面举个例子$ls-il 13058-rwx-1 longcheng longcheng 48 8 月 5 16:38 file1 13059-rwx-2 longcheng longcheng 57 8 月 5 16:40
11、file2 13059-rwx-2 longcheng longcheng 57 8 月 5 16:40 file2hard$ln s file1 file1soft$ls-il 13058-rwx-1 longcheng longcheng 48 8 月 5 16:38 file1 13059-rwx-2 longcheng longcheng 57 8 月 5 16:40 file2 13059-rwx-2 longcheng longcheng 57 8 月 5 16:40 file2hard 13061 lrwxrwxrwx 1 longcheng longcheng 5 8 月 5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连接 链接 区别 讲义
限制150内