编辑:
假定您首先安装了该版本,例如:
sudo apt install gcc-4.9 g++-4.9
原版的:
这是针对那些懒惰者的一线工具,只需将数字更改为所需的版本即可。它将更改gcc和/或g ++
ls -la /usr/bin/ | grep -oP "[\S]*(gcc|g\+\+)(-[a-z]+)*[\s]" | xargs bash -c 'for link in ${@:1}; do sudo ln -s -f "/usr/bin/${link}-${0}" "/usr/bin/${link}"; done' 4.9
在此示例中,我切换到4.9
没有错误检查,本示例中没有错误检查,因此您可能需要在运行之前检查将要运行的内容。只需在sudo之前添加echo即可。为了完整起见,我还提供了检查行:
ls -la /usr/bin/ | grep -oP "[\S]*(gcc|g\+\+)(-[a-z]+)*[\s]" | xargs bash -c 'for link in ${@:1}; do echo sudo ln -s -f "/usr/bin/${link}-${0}" "/usr/bin/${link}"; done' 4.9
支票的输出应类似于:
sudo ln -s -f /usr/bin/g++-4.9 /usr/bin/g++
sudo ln -s -f /usr/bin/gcc-4.9 /usr/bin/gcc
sudo ln -s -f /usr/bin/gcc-ar-4.9 /usr/bin/gcc-ar
sudo ln -s -f /usr/bin/gcc-nm-4.9 /usr/bin/gcc-nm
sudo ln -s -f /usr/bin/gcc-ranlib-4.9 /usr/bin/gcc-ranlib
sudo ln -s -f /usr/bin/x86_64-linux-gnu-g++-4.9 /usr/bin/x86_64-linux-gnu-g++
sudo ln -s -f /usr/bin/x86_64-linux-gnu-gcc-4.9 /usr/bin/x86_64-linux-gnu-gcc
sudo ln -s -f /usr/bin/x86_64-linux-gnu-gcc-ar-4.9 /usr/bin/x86_64-linux-gnu-gcc-ar
sudo ln -s -f /usr/bin/x86_64-linux-gnu-gcc-nm-4.9 /usr/bin/x86_64-linux-gnu-gcc-nm
sudo ln -s -f /usr/bin/x86_64-linux-gnu-gcc-ranlib-4.9 /usr/bin/x86_64-linux-gnu-gcc-ranlib
您可以使用以下命令检查版本:
gcc --version
半详细说明:
LS -la在/ usr / bin中/列表中的所有文件在/ usr / bin中
|管道(发送)输出到下一个命令
grep -oP每行匹配搜索正则表达式。o仅显示结果,而不显示整个匹配行。P告诉grep使用perl-regex。我不会在这里使用正则表达式,如果您愿意的话,请继续阅读。
简而言之,xargs收集通过管道传递给它的结果,并将所有结果发送到最后。即到xargs之后的命令
来砸好,它的庆典。该Ç标志告诉它要使用的字符串作为命令。在此示例中,它 通过跳过第一个(第0个)参数来循环从xargs发送的参数,在这种情况下,循环跳过4.9。在循环中使用第0个参数来更改链接。
LN -s -f的小号标志的一个符号链接,˚F力量如果需要取消关联首。