系统相关
首页 > 系统相关> > linux-当我们没有当前目录的执行权限时,为什么“ cd ..”起作用?

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

作者:互联网

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

解决方法:

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

从bash 4.3来源引用buildins / 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.

其他外壳可能会或可能不会以相同的方式运行.

标签:unix,file-permissions,linux
来源: https://codeday.me/bug/20191029/1960241.html