重复的系统 PATH 变量 (snap/bin:/snap/bin)

重复的系统 PATH 变量 (snap/bin:/snap/bin)

当我运行echo $PATH重复输出时快照/bin:/快照/bin出现在最后并且看起来很不寻常。

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

这种重复是不可取的吗?如果是这样,该如何改变呢?

答案1

很可能,在您的~/.bashrc或您的中~/.profile有一个命令添加/snap/bin到其中,$PATH而无需事先检查它是否仍在中$PATH

请记住,当您运行 中的命令时,变量中的重复条目$PATH不会产生任何影响$PATH。另一方面,当您运行 中的命令时,可能会出现速度减慢$PATH(因为当存在重复条目时,会无用地执行两次或多次命令搜索),尽管我认为很难察觉这种速度减慢。当您想直观地检查变量时,重复条目也会有点烦人$PATH

如果你想避免在文件中出现重复条目$PATH​​,你可以在~/.profile文件中添加此命令(即环境变量的最佳位置):

# remove duplicated paths in PATH variable
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"

此命令用于awk识别$PATH变量中的每个项目(它们通过字符分隔:)并重建$PATH变量,避免重新添加重复的文件夹。它还保留变量内文件夹的原始排序$PATH

你可以~/.profile用你喜欢的文本编辑器打开它。如果你用终端打开它,则不需要,sudo因为它属于你的用户。

相关内容