关於 .. 的疑问
时间:2009-12-24
来源:互联网
d00m3d@BlackMesa:~$ ll TEST ls: cannot access TEST: No such file or directory d00m3d@BlackMesa:~$ mkdir /tmp/TEST d00m3d@BlackMesa:~$ ln -s /tmp/TEST TEST d00m3d@BlackMesa:~$ ll TEST lrwxrwxrwx 1 d00m3d d00m3d 9 Dec 24 12:14 TEST -> /tmp/TEST d00m3d@BlackMesa:~$ cd TEST d00m3d@BlackMesa:~/TEST$ ls -l total 0 d00m3d@BlackMesa:~/TEST$ touch testfile d00m3d@BlackMesa:~/TEST$ ls -l total 0 -rw-r--r-- 1 d00m3d d00m3d 0 Dec 24 12:15 testfile d00m3d@BlackMesa:~/TEST$ mv testfile .. d00m3d@BlackMesa:~/TEST$ cd .. d00m3d@BlackMesa:~$ ls -l testfile ls: cannot access testfile: No such file or directory d00m3d@BlackMesa:~$ ls -l /tmp total 4 drwxr-xr-x 2 d00m3d d00m3d 4096 Dec 24 12:15 TEST -rw-r--r-- 1 d00m3d d00m3d 0 Dec 24 12:15 testfile d00m3d@BlackMesa:~$
cd 解作当前目录的上一层,也就是相对的路径,但 mv 却解作 /tmp/TEST 的上一层,亦即是绝对路径
何以不同?不解,请高人赐教。
作者: d00m3d 发布时间: 2009-12-24
作者: http://zh.wikipedia.org/wiki/符号链接
符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。某些需要特别处理符号链接的程序(如备份程序)可能会识别并直接对其进行操作。
|
作者: AutoXBC 发布时间: 2009-12-24
作者: AutoXBC 发布时间: 2009-12-24
作者: sxzzsf 发布时间: 2009-12-24
cd目录不改变实际的硬盘内容,所以怎么理解 .. 是无关紧要的
mv cp 实际操作目录inode号,应该严格按照目录的实体结构来操作的
作者: 飞龙在天 发布时间: 2009-12-24
作者: AutoXBC 发布时间: 2009-12-24
作者: AutoXBC
引用:
|
作者: d00m3d 发布时间: 2009-12-25
作者: 飞龙在天
原目录和软链接拥有不同的inode号,是两个不同的目录
cd目录不改变实际的硬盘内容,所以怎么理解 .. 是无关紧要的 mv cp 实际操作目录inode号,应该严格按照目录的实体结构来操作的 |
作者: d00m3d 发布时间: 2009-12-25
软链接应该是为了方便用户操作而设置的这样一种应用。
系统在文件操作时,应该有严格的规则,具有唯一性
我把软链接作为文件的应用层来看,原目录管理是底层。
这是根据对dos文件系统的理解而作的推测。ext文件文件我没做过仔细研究,应该都是差不多的原理。因为硬盘的柱面、磁头、扇区决定了不可能有太多的差异。
作者: 飞龙在天 发布时间: 2009-12-25
查了查 man bash, help set, help cd, echo $-。
bash 默认内嵌命令 cd 会跟随软连接,可以使用 cd -P 或 set -P 强制 cd 使用物理目录结构。
查询 inode 可以使用 ls -i 或 stat。
作者: 聚焦深空 发布时间: 2009-12-25
作者: 飞龙在天
这是根据对dos文件系统的理解而作的推测。ext文件文件我没做过仔细研究,应该都是差不多的原理。因为硬盘的柱面、磁头、扇区决定了不可能有太多的差异。
|
从文件系统角度看,硬盘物理结构是无关的,再说使用的块设备也不一定是硬盘,极端点,甚至可以不使用块设备,如 ramfs、tmpfs。
作者: 聚焦深空 发布时间: 2009-12-25
作者: 聚焦深空
以前从来没注意过这个问题,幸亏从来没有这么使用相对路径和软连接,又多一个规则。
查了查 man bash, help set, help cd, echo $-。 bash 默认内嵌命令 cd 会跟随软连接,可以使用 cd -P 或 set -P 强制 cd 使用物理目录结构。 查询 inode 可以使用 ls -i 或 stat。 |
作者: d00m3d 发布时间: 2009-12-25
指向目录的软连接,有可能出现在路径开头与中间,使用绝对路径 并且 无 "../" 出现时无歧义,也是安全的。
指向目录的软连接,只记得经常对其下的子目录或文件有处理,像首贴中例子没遇到过。
幸亏歧义只对包含 ".." 的路径有影响。
如果 /etc/profile 中添加 set -P,可以把歧义问题控制在最小范围。
作者: 聚焦深空 发布时间: 2009-12-25
其实我发现这个问题也是很偶然的,实际是我在别的目录下发生,但跟顶帖举例的现像是一样的。
以往我惯常把某些分区下的目录用 symlink 来操作,以後也要小心为上了。
作者: d00m3d 发布时间: 2009-12-25
当每一个符号链接都能用物理路径表示时,说明方程式有解,此时文件系统是健康的,当某一个符号链接不能表示时,说明方程误解,此时系统认为这个符号链接是损坏的,损坏的文件链接不能读取,损坏的目录链接不能进入。
当 shell 进行相对定位时,如果源路径和目标路径包含符号链接,相当于未知表达式,需要通过文件系统求出真实解,然后在此基础上进行相对定位。用户如果直接操作包含符号链接的路径有可能出错,那就在维护工作开始前执行一次 cd -P ./ ,解出当前路径的真实值,之后的操作都是安全的。
作者: AutoXBC 发布时间: 2009-12-25
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28