gpt4 book ai didi

bash - 将目录的快捷方式(软链接(soft link))添加到全局 PATH 以便可以从任何地方访问它

转载 作者:行者123 更新时间:2023-12-04 18:26:49 29 4
gpt4 key购买 nike

我试图将我所有的符号链接(symbolic link)放在一个目录中(我将称之为符号链接(symbolic link)目录)。我已经导出该目录的路径并将其放入我的 .bashrc 文件中。 可执行应用程序 的符号链接(symbolic link)运行良好,但我很难为我的目录制作符号链接(symbolic link)。这是我尝试过的。

ln -s ~/mydir/ m 

m 应该是我到 mydir 目录的符号链接(symbolic link)。

这仅在我位于 symlinks 目录中时有效。尝试 cd m 或什至只是 m 在该目录之外都不起作用。我得到:-

bash: cd: m: No such file or directory

好的,所以我认为 PATH 可能无法识别 directory 路径。所以我尝试创建一个 bash 脚本。

#!/bin/sh
cd ~/mydir/

试过了,m...permission denied。好的,我想了想并对该文件执行了 chmod +x m 操作。当我像 m 这样运行该脚本时,什么也没有。我尝试了 ./m,仍然没有。

做这么简单的任务,我都快疯了。

最佳答案

PATH 用于查找命令,我认为命令应该是文件或文件的符号链接(symbolic link)。

因此,cd m 不起作用,因为这里的命令是“cd”(不是 m)。在 PATH 中不会查找“m”。

Just m 不起作用,因为在 PATH 中找到的“m”是指向目录而非文件的链接。您可以尝试创建另一个指向文件的“m”并将其放入 PATH 后面的目录中,当您运行 m 时它会被识别。

您创建的脚本确实有效,除了 cd 现在出现在一个新的 shell 中并且在脚本末尾丢失了。您可以通过在脚本中的 cd 后面放置 ls 来检查这一点。

有几种方法可以实现您想要做的事情。

一种选择是使用 CDPATH 变量。这是 cd 命令的搜索路径。查看 man bash 了解详细信息,但基本上,您需要做的就是将您的符号链接(symbolic link)目录添加到 CDPATH。

export CDPATH=~/symlinks:$CDPATH
cd m ## will cd to linked directory

或者,您可以创建别名或函数并将其放入您的 .bashrc 或您随后获取的其他文件中。

alias m="cd ~/mydir"

m() {
cd ~/mydir
}

现在你可以输入 m 来 cd 到 mydir

关于bash - 将目录的快捷方式(软链接(soft link))添加到全局 PATH 以便可以从任何地方访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575853/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com