lrwxr-xr-x 1 root wheel 16 Apr 6 13:10 g++ -> /usr/bin/g++-4.5
-rwxr-xr-x 1 root wheel 14272 Feb 14 2014 gatherheaderdoc
lrwxr-xr-x 1 root wheel 16 Apr 6 13:11 gcc -> /usr/bin/gcc-4.5
lrwxr-xr-x 1 root wheel 22 Jul 2 2014 gcc-4.2 -> /usr/local/bin/gcc-4.2
lrwxr-xr-x 1 root wheel 12 Apr 6 10:59 gcc-4.4 -> /usr/bin/gcc
lrwxr-xr-x 1 root wheel 12 Apr 6 11:17 gcc-4.5 -> /usr/bin/gcc
嗨,我对linux有点新手。所以我需要一些帮助来解决这个问题。
我更新了新版本的gcc,当我尝试使用gcc --version
检查版本时,收到以下错误zsh: too many levels of symbolic links: gcc
。
我在ls -l
上运行/usr/bin
,我找到了上面粘贴的循环链接。有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
问题在于您的相对路径。我在将我的 Nginx 配置从 /usr/local/etc/nginx
符号链接到 /etc/nginx.
时遇到了类似的问题,如果您像这样创建符号链接:
cd /usr/local/etc
ln -s nginx/ /etc/nginx
实际上,您将创建链接 /etc/nginx -> /etc/nginx,
,因为源路径是相对于链接路径的。
解决方案就像使用绝对路径一样简单:
ln -s /usr/local/etc/nginx /etc/nginx
如果您想使用相对路径并让它们按照您可能期望的方式运行,您可以使用 pwd 将当前工作目录路径放入,如下所示:
cd /usr/local/etc
ln -s "$(pwd)/nginx/" /etc/nginx
您可能希望在路径周围加上引号,以确保对当前路径中的空格等内容进行转义。请注意,执行此操作时必须使用双引号,因为如果使用单引号,$(pwd) 将不会被替换。
答案 1 :(得分:1)
我确定之前的答案已经涵盖了这一点,但是,您可以看到/ usr / bin / gcc链接到/usr/bin/gcc-4.5,链接到/ usr /斌/ GCC。圆。所以,zsh最终会停止四处转圈并给你留言。你需要擦除/ usr / bin / gcc *然后重新安装吗?