重複的系統 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.

請注意,當您執行 .txt 檔案中的命令時,變數中的重複條目$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因為它屬於您的使用者。

相關內容