在我设置rtags时,我使用下面创建了一个指向gcc-rtags-wrapper.sh
g++
的符号链接。
sudo ln -s ~/rtags/bin/gcc-rtags-wrapper.sh ~/bin/g++
并在shell配置文件( fish shell )中将新创建的链接的目录添加到$PATH
。
为了检查我是否成功这样做,我在终端中运行了which -a g++ | xargs file
,期望看到g++
的单个实例,而不是我使用相同符号lnik的两个实例来{ {1}}。
gcc-rtags-wrapper.sh
我认为这是一个非常新的问题,但为什么会这样呢?提前致谢。
我确实看了一下类似的question,但认为我的情况有所不同,因为我正在建立一个指向特定文件而不是目录的链接。
编辑:
谢谢! @David C. Rankin,@ Greg A. Woods& @jlliagre !!!
我的/home/grey/bin//g++: symbolic link to `/home/grey/rtags/bin/gcc-rtags-wrapper.sh'
/home/grey/bin/g++: symbolic link to `/home/grey/rtags/bin/gcc-rtags-wrapper.sh'
/usr/bin/g++: symbolic link to `g++-4.8'
变量同时包含$PATH
和*/bin
。删除其中一个包后运行*/bin/
会返回which -a g++ | xargs file
的单个实例!我错误地认为g++
变量中的冗余包含将被忽略。
答案 0 :(得分:4)
这与有符号链接的事实无关。您的PATH包含/home/grey/bin/
和/home/grey/bin
。找到命令的第一次出现时,which -a
不会停止,因此报告冗余命令。