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