gpt4 book ai didi

linux - 当我们对当前目录没有执行权限时,为什么 "cd .."会起作用?

转载 作者:太空狗 更新时间:2023-10-29 11:04:31 25 4
gpt4 key购买 nike

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

最佳答案

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

从 bash 4.3 来源引用 builtins/cd.def:

The default is to follow symbolic links, as if -L' were specified.
..' is processed by removing the immediately previous pathname component back to a slash or the beginning of DIR.

您可以将其视为 help cd 输出的一部分。

这个帮助文本似乎是在 bash 4.3 中引入的,但功能至少可以追溯到 bash 3.2。

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

关于linux - 当我们对当前目录没有执行权限时,为什么 "cd .."会起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24111236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com