光盘

光盘

我在我的主文件夹中创建了一个指向另一个目录的符号链接:

$ 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

相关内容