2014-11-28 13 views

Antwort

2

Ähm ... das hat nicht für mich funktioniert. Ich würde buchstäblich zuvor geschrieben

export PATH=$(pwd):$PATH

Der Befehl tun nur den Punkt hinzufügt.

+0

was hat nicht für Sie funktioniert? – Baha

24

Ich weiß, dies ist eine alte Antwort, aber wenn jemand über diese Frage über Google stolpert wie ich, hier ist eine detailliertere Erklärung.

Wenn Sie es machen wollen, so dass Suchpfad den Wert von pwd zu der Zeit enthält, die Sie den Suchpfad festgelegt, tun:

export PATH=$PATH:$(pwd) 

Also, wenn pwd/home/me/tmp ist, wird PATH gesetzt werden Wenn Sie es jedoch zu $PATH:/home/me/tmp

wollen, so dass, was auch immer Ihr aktuelles Arbeitsverzeichnis ist ein Befehl zum Zeitpunkt ausführen (ex, der Wert von pwd zu einem bestimmten Zeitpunkt im Suchpfad ist), tun:

export PATH=$PATH:. 

Also, wenn pwd/home/me/tmp ist, wird PATH $PATH:. eingestellt werden. Wenn Ihr aktuelles Arbeitsverzeichnis ein Skript namens foo enthält, würde es in Ihrem PATH enthalten sein. Wenn Sie Verzeichnisse zu einem ändern, das foo nicht enthält, wird "foo" nicht mehr in dem PATH gefunden.

Sie sollten beachten, dass ein vorhandenes Arbeitsverzeichnis in Ihrem PATH ein potenzielles Sicherheitsrisiko darstellt.

+4

fügen Sie immer die hinzu. am Ende des Pfades ... nicht der Anfang. Am Anfang ist es das größte Sicherheitsrisiko. weil Sie Standardbefehle wie ls ersetzen können. Sehr schlechte Übung. Setzen Sie es am Ende, dann werden Standardbefehle immer zuerst ausgegeben. – DiamondDrake

+0

Danke @RickeyWard, du hast absolut recht. Ich habe die Antwort bearbeitet, um Ihren Vorschlag zu reflektieren. –

+1

Das Risiko ist hier sehr real. Wenn ich eine bösartige ausführbare Datei erzeuge, die nach einem allgemeinen Dienstprogramm ('ls', usw.) benannt ist und Sie dazu verleitet, das Verzeichnis zu besuchen, in dem sie sich befindet, wird sie wahrscheinlich ausgeführt und ausgenutzt. Dies gilt nicht so einfach für Einzelbenutzer-Hosts, aber es ist immer noch ein unnötiges Risiko. Ich würde gegen alle relativen Verzeichnisse in '$ PATH 'empfehlen.Wenn Sie eine Reihe von Befehlen in einem Verzeichnis haben, das Sie nur manchmal verwenden, schreiben Sie am besten ein schnelles Skript, das es (explizit) zum Pfad hinzufügt. – Mark

1
export PATH=$PATH:$PWD 

Arbeiten mit bash 4.3.48

1

Wenn Sie das Verzeichnis, das Sie zur Zeit sind in der PATH-Variable permanent hinzufügen möchten, können Sie

$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc 

die $(pwd) erweitern verwenden in das String-Literal Ihres aktuellen Verzeichnisses und fügen Sie die zitierte Zeile an Ihre bashrc an. Beachten Sie, dass die \ in \$PATH benötigt wird, um die Erweiterung von $PATH auf ihren aktuellen Wert zu vermeiden.

$ pwd 
/path/to/suuuuuuuuuuuuuuuuuuuuper/long/foo/directory/bin 

$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc 

$ tail ~/.bashrc -n 1 
export PATH=$PATH:/path/to/suuuuuuuuuuuuuuuuuuuuper/long/foo/directory/bin 
Verwandte Themen