![光盘](https://linux22.com/image/1518207/%E5%85%89%E7%9B%98.png)
我在我的主文件夹中创建了一个指向另一个目录的符号链接:
$ pwd
/home/user1
$ ln -s /usr/local/dir/ shortcut
$ ls -l
................................... shortcut -> /usr/local/dir/
$ cd shortcut
$ pwd
/home/user1/shortcut
我确实进入了该目录,因此我可以看到其中的所有文件,但这pwd
很混乱,可能会导致问题。有没有更好的方法可以让它充当快捷方式,并/usr/local/dir
在我进入时实际显示cd shortcut
,而不是显示新路径?
答案1
和cd
都有pwd
标志来使用物理目录结构。
光盘
$ cd --help
...
-P use the physical directory structure without following
symbolic links: resolve symbolic links in DIR before
processing instances of `..'
...
例如
$ cd /var/tmp
$ ln -s /home/user test
$ cd -P test
$ pwd
/home/user
上面我们习惯cd -P
使用物理目录结构,所以现在pwd
给我们物理路径。
密码
$ pwd
...
-P print the physical directory, without any symbolic links
...
例如
$ cd /var/tmp
$ ln -s /home/user test
$ cd test
$ pwd
/var/tmp/test
$ pwd -P
/home/user
上面,我们cd
像平常一样进入目录,因此pwd
给出了符号路径。使用pwd -P
将给出物理路径。
在 bash 中全局设置
如果您正在使用,bash
您可以通过运行来告诉它完全忽略符号链接,只使用物理目录结构set -P
(简写set -o physical
,请参阅`bash 手册页)。其他 shell 也可能实现此操作。
答案2
使用 $CDPATH
$ CDPATH=/usr/local
$ cd dir
$ pwd
/usr/local/dir