it-swarm.com.de

Hinzufügen eines aktuellen Verzeichnisses './' zum Suchpfad in Linux

Wie füge ich ein aktuelles Verzeichnis './' zum Suchpfad für ausführbare Dateien in Linux hinzu?

24
Brian Mckinlay

Ich weiß, dass dies eine alte Antwort ist, aber wenn jemand anderes wie Google über diese Frage stolpert, folgt eine ausführlichere Erklärung.

Wenn Sie möchten, dass der Suchpfad den Wert von pwd zu dem Zeitpunkt enthält, zu dem Sie den Suchpfad gesetzt gesetzt haben, führen Sie folgende Schritte aus:

export PATH=$PATH:$(pwd)

Wenn also pwd/home/me/tmp ist, wird PATH auf $PATH:/home/me/tmp gesetzt.

Wenn Sie jedoch möchten, dass sich das aktuelle Arbeitsverzeichnis zu dem Zeitpunkt befindet, zu dem Sie einen Befehl ausführen (ex; der Wert von pwd ist zu einem beliebigen Zeitpunkt im Suchpfad), führen Sie folgende Schritte aus:

export PATH=$PATH:.

Wenn also pwd/home/me/tmp ist, wird PATH auf $PATH:. gesetzt. Wenn Ihr aktuelles Arbeitsverzeichnis ein Skript mit dem Namen foo enthält, würde es in Ihrem PATH fount sein. Wenn Sie das Verzeichnis in ein Verzeichnis ändern, das keine foo enthält, wird "foo" nicht mehr im PATH gefunden.

Sie sollten jedoch beachten, dass die Verwendung Ihres aktuellen Arbeitsverzeichnisses in PATH ein potenzielles Sicherheitsrisiko darstellt.

33
Justin Doyle

Wenn Sie dauerhaft das Verzeichnis, in dem Sie sich derzeit befinden, zur PATH-Variablen hinzufügen möchten, können Sie dies verwenden

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

dadurch wird $(pwd) auf das Zeichenfolgenliteral Ihres aktuellen Verzeichnisses erweitert und die angezeigte Zeile an Ihre Bashrc angehängt. Beachten Sie, dass \ in \$PATH erforderlich ist, um die Erweiterung von $PATH auf den aktuellen Wert zu übertragen.

$ 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
6
Matthew Woo

Ähm ... das hat bei mir nicht funktioniert. Würde ich tun

export PATH=$(pwd):$PATH

Der zuvor eingegebene Befehl fügt nur den Punkt hinzu.

4
oliver

Für das aktuelle Verzeichnis können Sie einfach einen Verzeichnisnamen mit Nulllänge (Null) verwenden. Sie können einen Anfangs- oder Nachlauf-Doppelpunkt oder einen Doppelpunkt verwenden. Dies ist von der bash-Manpage man bash:

PATH   The  search path for commands.  It is a colon-separated list of
       directories in which the Shell looks for commands (see COMMAND EXECUTION
       below).  A zero-length (null) directory name in the value of PATH
       indicates the current directory.  A null directory name may appear as two
       adjacent colons, or as an initial or trailing colon. The default path
       is system-dependent, and is set by the administrator who installs bash.
       A common value is
       ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
1
dosentmatter
export PATH=$PATH:$PWD 

arbeitet mit bash 4.3.48

1
gerardw

Dies ist eine alte Frage, aber ich dachte, ich würde sie für diejenigen hinzufügen, die CSH oder TCSH verwenden.

Wenn Sie Folgendes in Ihre .cshrc- oder .tcshrc-Datei einfügen, wird das aktuelle Verzeichnis der Umgebungspfadvariablen hinzugefügt.

setenv PATH {$PATH}:.
1
MBW