当我运行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
因为它属于你的用户。