LinuxSir.Org  
| 网站首页 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-09-04, 00:59 第 16 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。
对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。
可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。
连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:

硬连接:原文件名和连接文件名都指向相同的物理地址。
目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)
文件在磁盘中只有一个拷贝,节省硬盘空间;
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。

符号连接:用ln -s命令建立文件的符号连接
符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。
可以删除原有的文件而保存连接文件,没有防止误删除功能。
注:转自:cu的一个网友的解释
  KornLee 当前离线   回复时引用此帖
旧 03-09-10, 09:12 第 17 帖
seazon
 
seazon 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 上海
  帖子: 78
  精华: 1
 

引用:
最初由 seazon 发表
软连接可以跨分区建立。昨天,我突发奇想——从linux上建立一个软连接到windows分区上,于是我先挂栽windows分区,然后用ln -s file1 /mnt/windows/file1.但是系统报错,说不能建立,这是为什么啊?
我用cp命令可以从linux分区中复制1个文件到windows分区中。

谢谢!
seazon
有谁能回答我这个问题啊!

在linux上不能创建符号连接是不是因为windows系统识别不出linux的文件系统啊!



错!错!错!我终于明白了符号连接可以跨分区连接,但是,并不表示可以跨越不同的文件系统而建立连接。换句话说,如果从ext3的分区中建立一个符号连接到ext2的分区中,应该也是不成功的。(个人观点,未经过实践证实)

各位,如果有谁知道的话,希望能给我一个肯定的答复,谢谢!







__________________
努力的小鸟一定能翱翔在浩瀚的天空。

相信自己,努力奋斗,一定能到达成功的颠峰!

此帖于 03-09-10 09:21 被 seazon 编辑.
  seazon 当前离线   回复时引用此帖
旧 03-09-10, 16:58 第 18 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

引用:
最初由 seazon 发表
有谁能回答我这个问题啊!

在linux上不能创建符号连接是不是因为windows系统识别不出linux的文件系统啊!



错!错!错!我终于明白了符号连接可以跨分区连接,但是,并不表示可以跨越不同的文件系统而建立连接。换句话说,如果从ext3的分区中建立一个符号连接到ext2的分区中,应该也是不成功的。(个人观点,未经过实践证实)

各位,如果有谁知道的话,希望能给我一个肯定的答复,谢谢!
FAINT... ARE YOU KIDDING?!
你只试了一次从 windows 的分区 link ext2 分区的文件就开始下结论呀,我倒
你不能 link 的原因不外乎两个:
1. windows 分区根本不支持 link。我不太清楚你用的分区是 fat 还是 ntfs 格式的,但这种可能性太小:从 soft link 的机制来说,应该只要能保存文件的 filesystem 就能支持 soft link (说出这种话的人是不是在发烧 我隐约记得几年前在 windows 下看过这种 link 文件,但我现在手头没有 fat 分区,没法试验。
2. 你的 windows 分区根本就是只读状态。这一个比较可能。因为大家现在用的一般都 win2k 以上版本的 windows 了,分区多为 ntfs 格式;这 ntfs driver 的写入功能现在还在测试阶段,linux 默认 mount ntfs 都是只读的。你要想在 read only 的分区上写文件那可就要碰壁了。

从我自己这里来讲,常年 link 着另一个 samba 文件服务器上的目录,而且不是 link 到 mount 点,而是他下面的某个目录。这节省了我大量逐层进入目录的时间。

> 如果从ext3的分区中建立一个符号连接到ext2的分区中,应该也是不成功的
这一个……呵呵,是补课的时候了,建议你好好查查资料,看看 ext2 和 ext3 有什么区别
  idkey 当前离线   回复时引用此帖
旧 03-09-10, 18:30 第 19 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

刚才的凭空猜测有错误,还得纠正一下。

seazon 凭一个例子完全否定,我则完全肯定,都没有经过仔细调查,都不是科学的态度呀。刚在 man、info 里查到确实有些分区不支持 link,但没有说是那些;在网上看到的这条应该比较可信:

> > ln -sf /usr/src/cvstree/test.c /home/chris/test.c
>
> If /usr/src/cvstree is some directory on the windoze system that you've
> mounted on that path in the Linux system, and /home/chris is a REAL
> Linux directory on the linux system AND you have write access to that
> directory and read access to the /usr/src/cvstree/test.c file, you
> should have no problem creating the symlink.
>
> If, on the other hand, /home/chris is a directory in a DOS/Windoze
> filesystem, you can't create symlinks THERE, since the DOSdoze
> filesystems don't support it.

http://www.geocrawler.com/archives/3.../4/50/5530982/

可惜不知道为什么有些分区不能 link,这可能得看 ln 和 fat、ntfs 驱动的源码了;不过刚才作了一个 tar 包看了看,link path 存放的位置和文件内容存放的位置不一样,不知道是文件系统中本来如此,还是 tar 自己的格式所致。
  idkey 当前离线   回复时引用此帖
旧 03-09-11, 10:13 第 20 帖
seazon
 
seazon 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: 上海
  帖子: 78
  精华: 1
 

大哥教训的是。

其实刚开始我也只是假设,我也说过,我没有做过实验,因为我的电脑里只有EXT3和FAT格式的文件系统,所以我很难用实践得出结论(我也希望知道的人能告诉我事实):(

大哥说我的windows系统可能是只读的,但我认为不是这样,因为我用cp命令做拷贝完全可以。那看来只有一种可能,就是linux不能做软连接到windows的FAT上。[color=blue](只是假设)
  seazon 当前离线   回复时引用此帖
旧 03-09-11, 10:29 第 21 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

引用:
最初由 seazon 发表
那看来只有一种可能,就是linux不能做软连接到windows的FAT上。[color=blue](只是假设)
没错,上面那段话里就说明了这点。
  idkey 当前离线   回复时引用此帖
旧 03-09-12, 10:58 第 22 帖
seablue
 
seablue 的头像
 
 
注册会员  
  注册日期: Apr 2003
  我的住址: 银河系
  帖子: 999
  精华: 3
 

刚才在fat32上做了实验,应该是fat32本身不支持符号链接;
因为在fat32本文件系统内也无法进行符合链接.
代码:
ln -s ppl.txt /mnt/ppl.ln ln: 正在创建连至‘ppl.txt’的符号链接‘/mnt/ppl.ln’: 不允许的操作
但是可以做链接到fat32的文件:
代码:
ln -s /mnt/ppl.txt test.ln ll test.ln lrwxrwxrwx 1 root root 12 9月 12 11:31 test.ln -> /mnt/ppl.txt

此帖于 03-09-12 11:26 被 seablue 编辑.
  seablue 当前离线   回复时引用此帖
旧 03-09-13, 13:20 第 23 帖
arkira
 
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 45
  精华: 0
 

如果 我 改变 连接文件的权限 ,对目的文件有什么影响呢 ?
  arkira 当前离线   回复时引用此帖
旧 03-10-27, 13:33 第 24 帖
rainren
 
rainren 的头像
 
 
临时退役版主  
  注册日期: Sep 2002
  我的住址: BSD
  帖子: 1,089
  精华: 11
 

我就从fat32文件系统做个软连接到这边freebsd中apahce根目录, 从别的地方用 web方式访问一点问题都没!







__________________
★ *""*☆*""* ★
★ *""*☆*""* ★
★ *""*☆*""* ★
*☆ *.★.* *""*☆*""*[color=red][size=7]发贴前先看置顶贴并使用论坛搜索[/size][/color] *""*☆.*
  rainren 当前离线   回复时引用此帖
旧 04-08-24, 13:31 第 25 帖
xj_527
 
xj_527 的头像
 
 
注册会员  
  注册日期: May 2003
  帖子: 103
  精华: 0
 

我用 ln -s /mnt/wind/readme /root/xxx 是可以的啊
wind是我的FAT32的D盘。
  xj_527 当前离线   回复时引用此帖
旧 04-08-24, 17:10 第 26 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

符号链接是可以跨文件系统链接的呀!
  KornLee 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:17


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2012, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2011, LinuxSir.Org