Val*_*Val 13 command-line directory symbolic-link
如果我使用以下命令在终端中创建符号链接
ln -s /path/to/some/directory symbolicLink
然后按照链接
cd symbolicLink
终端似乎认为 cwd 是~/symbolicLink/即使它实际上正在显示~/path/to/some/directory/(~当然,假设链接是在 中创建的)。这意味着,如果我然后输入,cd ..我将被带回~,因为终端“认为”这是 cwd 的父级。
我需要改变什么才能cd ..把我带到~/path/to/some/,即 的真正父母~/path/to/some/directory/?
cd -P行为中有一个微妙的警告(由于篇幅而作为答案发布):
$ dir1=$(mktemp --directory)
$ dir2=$(mktemp --directory)
$ ln -s -- "$dir1" /tmp/start
$ ln -s -- "$dir2" "$dir1"
$ cd "/tmp/start/"*
$ cd -P ..
Run Code Online (Sandbox Code Playgroud)
pwd现在应该打印什么?从逻辑上讲,它可以是
$dir1如果cd -P ..不cd ..先和cd -- "$(readlink -f)"后,或/tmp如果cd -P ..不cd -- "$(readlink -f)"先和cd ..之后。实际上它是后者,这意味着pwd直观上比“父”目录高两个级别。
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |