下午对Linux的链接进行了学习,总结经验如下:
链接分为两种,即硬联接、软链接
先说说链接的创建吧
<2>ln [options] allchildfiles linkpath
-f 建立时,将同档案名删除.
-i 删除前进行询问.
以上是创建硬联接的方式
软链接与之不同之处 仅仅在于 需要在ln之后加‘-s’
用法:
上述的第一种就是为yourfile创建硬链接,文件名为linkfile
如:ln home/test1 home/test2。
而第二种则是给allchildfiles所有的文件都在linkpath中建立一个同名的硬链接。
如:ln /home/xxj/game/* /home/xxj/game2
其中[options] –f 无论/home/xxj/game2是否存在都创建链接;-n 如果/home/xxj/game2已存在就不创建链接。
两种链接的区别:
1.创造方式不再叙述了
2.本质区别:硬链接其实就是创造了一个新的指向源文件的指针而不是重新去建立一个文件,创造之后于源文件没有任何区别,同时管理使用的是同一个文件,值得一提的是,由于文件创造了硬联接,其I节点的链接数目就会随之变成对应个数,在对该文件删除时,只有再这个文件的链接数为零时(即硬联接于原文件全删除)才会真正意义上的删除此文件。
这也正是我所说的创造出来的硬链接文件于源文件没有区别的体现。
而软链接则不同,其实软链接就相当于windows下的快捷方式,如果原文件发生了变化就会影响软链接的正常使用。此外既然是快捷方式,其源文件的连接数就不合发生变化
值得一提的是,软链接虽然是快捷方式但在查询的时候仍然也有自己的大小(于源文件的大小不同欧)。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但 是 删除 源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名。软连接可以对一个不存在的文件名进行连接 ,软连接可以对目录进行连接。
软连接可以 跨文件系统 ,硬连接不可以 。
实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt
/root/bb 连接成功 。ln aa.txt /root/bb 失败 。
两种链接的利弊:
<一>硬链接
弊端:
(1)不可以在不同文件系统的文件间建立链接
(2)只有超级用户才可以为目录创建硬链接。
<二>软链接
弊端:
原文件发生了变回就会影响软链接的正常使用
备注:I节点 :它是UNIX内部描述文件特性的数据结构.我们通常称其为文件索引结点(又或信息结点),它包括文件数据块在
磁盘上的地址。每个I节点都有自己的标志号(文件顺序号)I节点包含的信息 有:
1.文件类型
2.文件属主关系
3.文件的访问权限
4.文件的时间截.