Doppelte System-PATH-Variable (snap/bin:/snap/bin)

Doppelte System-PATH-Variable (snap/bin:/snap/bin)

Wenn ich echo $PATHdie doppelte Ausgabe ausführesnap/bin:/snap/binerscheint am Ende und scheint ungewöhnlich.

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

Ist diese Duplizierung unerwünscht? Wenn ja, wie kann dies geändert werden?

Antwort1

Wahrscheinlich gibt es in Ihrer ~/.bashrcoder in Ihrem einen Befehl, der das hinzufügt , ohne vorher zu prüfen, ob es sich noch im befindet .~/.profile/snap/bin$PATH$PATH

Bedenken Sie, dass doppelte Einträge in der $PATHVariable keine Auswirkungen haben, wenn Sie einen Befehl ausführen, der sich in Ihrer befindet $PATH. Eine Verlangsamung kann jedoch auftreten, wenn Sie einen Befehl ausführen, der sich nicht in befindet $PATH(weil die Befehlssuche nutzlos zwei oder mehr Mal ausgeführt wird, wenn doppelte Einträge vorhanden sind), obwohl ich denke, dass diese Verlangsamung schwer wahrnehmbar ist. Doppelte Einträge sind auch ein wenig ärgerlich, wenn Sie Ihre $PATHVariable visuell überprüfen möchten.

Wenn Sie doppelte Einträge in Ihrer vermeiden möchten $PATH, können Sie diesen Befehl in Ihre ~/.profileDatei einfügen (das heißtder beste Standort für Umgebungsvariablen):

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

Dieser Befehl dient awkdazu, jedes Element in der $PATHVariable zu identifizieren (sie werden durch das :Zeichen getrennt) und die $PATHVariable neu zu erstellen, ohne dass doppelte Ordner erneut hinzugefügt werden müssen. Außerdem bleibt die ursprüngliche Sortierung der Ordner innerhalb der $PATHVariable erhalten.

Sie können ~/.profilees mit Ihrem bevorzugten Texteditor öffnen. Wenn Sie es über ein Terminal öffnen, brauchen Sie es nicht, sudoda es Ihrem Benutzer gehört.

verwandte Informationen