Linux 当我们对当前目录没有执行权限时,为什么;cd.“;工作

Linux 当我们对当前目录没有执行权限时,为什么;cd.“;工作,linux,unix,file-permissions,Linux,Unix,File Permissions,假设我们有一个名为foo的目录:/home/user/foo。在Icd转换为foo之后,我更改了当前目录的执行权限:chmod-x../foo。删除执行权限后,我无法访问任何文件,这是正常的。但当我写“cd..”时,我可以更改目录。为什么“cd..”有效?至少在bash中,cd..是专门实现的。它不会从当前目录中读取。目录;相反,它通过删除尾部组件来计算父目录的名称 引用bash 4.3中的内置/cd.def: 默认设置是跟随符号链接,就好像指定了-L'。 通过删除上一个路径名来处理“” 组件返

假设我们有一个名为foo的目录:
/home/user/foo
。在I
cd
转换为foo之后,我更改了当前目录的执行权限:
chmod-x../foo
。删除执行权限后,我无法访问任何文件,这是正常的。但当我写“
cd..
”时,我可以更改目录。为什么“
cd..
”有效?

至少在bash中,
cd..
是专门实现的。它不会从当前目录中读取
目录;相反,它通过删除尾部组件来计算父目录的名称

引用bash 4.3中的
内置/cd.def

默认设置是跟随符号链接,就好像指定了
-L'。
通过删除上一个路径名来处理“
” 组件返回到斜杠或目录的开头

您可以将其视为
帮助cd
输出的一部分

这个帮助文本似乎是在Bash4.3中引入的,但其功能至少可以追溯到Bash3.2


其他shell的行为可能相同,也可能不同。

我不认为这是离题的。它与shell脚本有关,shell脚本是一种编程。你说得对,谢谢。在bash中,如果我们使用cd和-P选项,那么一切看起来都正常。