Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

5年前关闭。



Improve this question



ls ..

表示“列出上级导演的文件和目录。”

当我通过符号链接(symbolic link)更改目录时,ls ..不跟随符号链接(symbolic link)。它只是显示真正的上层目录。

例如,当目录结构如下时,
r ┬ a - b - sub@
  └ sub

(sub@是到sub目录的符号链接(symbolic link))

就像我在ls ..中一样,cd a/b/sub之后的r命令会在r/sub目录中提供文件。而不是b目录。但是cd ..命令将我带到b目录。

如何使用ls命令显示目录b中的文件?

最佳答案

目录不知道您曾使用过什么符号链接(symbolic link); ..是指向实际父目录的实际目录条目。但是,当您使用shell命令cd ..时,bash作弊。它知道您用来到达那里的路径(位于$PWD中),因此它仅删除了该路径的最后一个部分并更改为结果目录。

您可以使用"${PWD%/*}"而不是..自己使用相同的技巧来获得其他命令的好处:

ls "${PWD%/*}"

关于linux - 为什么 `cd ..`反射(reflect)符号链接(symbolic link)遍历,而 `ls ..`却不反射(reflect)? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32354785/

10-12 17:30