如何在 Unix 中创建这个符号链接?

如何在 Unix 中创建这个符号链接?

我想在运行 make 时运行 gmake,因此我正在创建一个符号链接。我的 gmake 在里面/usr/local/dist。我的品牌是 inisde /usr/ccs/bin

这是正确的命令吗:ln -s /usr/local/dist/gmake /usr/ccs/bin/make

我的困惑是,我关心吗/usr/ccs/bin/make?我正在创建一个符号链接,因此如果我在任何地方键入“make”,它应该在/usr/local/dist右侧运行 gmake 吗?

那么命令应该是:ln -s /usr/local/dist/gmake make

答案1

符号链接系统二进制文件通常根本不是正确的方法。这将导致稍后其他软件期望某些二进制名称与某些已知行为相对应的复杂性。听起来你想要的是一个别名。在你的 shell 中运行:

alias make=gmake

现在,每当您输入 make 时,它​​都会为您运行 gmake。要使其永久化,请将该行添加到 shell 的 rc 文件中(例如~/.bashrc)。

答案2

mkdir -p ~/bin &&
  ln -s /usr/local/dist/gmake ~/bin/make &&
  PATH=~/bin:$PATH

这样您就可以控制调用哪个进程(那些具有您PATH所在位置的~/bin进程/usr/ccs/bin)。gmakemake

答案3

您必须链接gmakePATH之前make,例如 in /usr/bin。检查make现在链接的位置(如果是):type make

如果/usr/binPATH 中的目录早于make找到的目录,则可以使用以下命令将其链接到那里:

ln -s /usr/local/dist/gmake /usr/bin/make

也许您必须覆盖现有链接才能创建。我不确定这对于包的更新有多安全。

相关内容