cp -d symlinc dir/symlinc这样,在ubuntu 9.10下并不能复制符号链接,符号链接变成无效的,这与我们在windows中理解的不太一样,windows里面的符号链接是可以到处复制的,而且保持其有效性。而linux中也应该是保存的路径(难道不是全路径名?),但是只能支持:
1.复制链接跟随的文件
2.复制链接后失效
感觉很奇怪
查了一下kernel源代码,发现__vfs_follow_link既接受全路径的链接文件,也接受相对路径,而ext3文件系统inode中用来存放链接路径名的数组长度总共60字节,不算很长,全路径名最长4096字节,最长文件名256字节,从这样算起,ext3很有可能存放的是相对路径,这样符号链接复制后,他的原来指向的文件就不存在了,所以就出错了。
但是这样好像也不对...因为后来创了一个同名于它指向那个文件的文件还是不能打开,是怎么回事呢...看来还得跟下内核才知道