微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cd / bash在符号链接上的行为

假设我的文件夹中有〜/ a / b文件夹,文件夹b包含一个名为'symlink'的符号链接。 然后,我在bash中执行以下操作:

hm@mach:~$ cd a/b/symlink hm@mach:~/a/b/symlink$ pwd -P /home/hm/a hm@mach:~/a/b/symlink$ cd .. hm@mach:~/a/b$ pwd -P /home/hm/a/b

pwd -P打印当前工作目录,取消所有符号链接。 为什么工作目录/ home / hm / a / b在最后,而不是/ home / hm?

如何获得python在UNIX中的最大文件系统path长度?

在Linux上确定一个陈旧的Samba挂载的最快方法

在embedded式Linux上安全地写入压缩闪存

使用Java创buildWindows符号链接(相当于MKLINK)

如何解释/ proc / mounts?

bash是“友善”的; 当你cd /into/a/symlink/ ,shell会记住旧的位置(在$OLDPWD ),并且在你想要返回到你刚才所在的目录的前提下将使用该目录。

如果你想使用真正的 .. ,那么你也必须使用cd -P :

The -P option says to use the physical directory structure instead of following symbolic links (see also the -P option to the set builtin command); the -L option forces symbolic links to be followed.

$ cd $ cd a/b/symlink $ cd -P .. $ pwd -P /home/sarnold $

bash跟踪逻辑当前目录的路径,如你的提示所示,并根据这个解释cd ..等东西。 如果你只在cd (或pushd )中使用这样的路径,这会让事情变得更加一致,代价是出乎意料的事情发生,如果你期望同样的事情发生在命令参数中的路径(或者内部命令; emacs和vim有他们自己的可配置的符号链接处理规则,但大多数命令依靠内核来处理它)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐