Pie*_*tro 7 linux symbolic-link xfce
我在它自己的目录中有一个项目:
/目录/到/项目/
我在桌面上有一个指向该目录的符号链接:
/家/用户/桌面/项目/
当我双击该链接时,打开的目录窗口是:
/家/用户/桌面/项目/
而不是真正的,/dir/to/project。
命令行 (Bash) 也会发生同样的情况。
是否有可能得到我想要的,即转到指向的目录,而不是符号目录?
注意:我现在使用的 windows 环境是 Xfce,但我也对通用答案感兴趣。
Kam*_*ski 15
在bash该cd内置用途-P和-L开关; pwd以同样的方式理解它们:
user@host:~$ ln -s /bin foobar
user@host:~$ cd -L foobar # follow link
user@host:~/foobar$ pwd -L # print $PWD
/home/user/foobar
user@host:~/foobar$ pwd -P # print physical directory
/bin
user@host:~/foobar$ cd - # return to previous directory
/home/user
user@host:~$ cd -P foobar # use physical directory structure
user@host:/bin$ pwd -L # print $PWD
/bin
user@host:/bin$ pwd -P # print physical directory
/bin
Run Code Online (Sandbox Code Playgroud)
此外cd ..可能很棘手:
user@host:/bin$ cd
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -L .. # go up, to ~/
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -P .. # go up, but not to ~/
user@host:/$
Run Code Online (Sandbox Code Playgroud)
见help cd和help pwd。请注意,您可能还有一个/bin/pwd类似的可执行文件(即不是内置的 shell)。在我的Kubuntu所不同的是pwd,没有任何选项使用内置-L而/bin/pwd默认情况下使用-P。
您可以cd通过set -P(cd作为cd -P) 和set +P(cd作为cd -L)调整内置的默认行为。详情请参阅help set。
用于readlink解析指向其目标的链接:
cd $(readlink thelink)
Run Code Online (Sandbox Code Playgroud)
您可能想在 bash 配置文件中定义一个函数:
function cdl { local dir=$(readlink -e $1); [[ -n "$dir" ]] && cd $dir; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11281 次 |
| 最近记录: |