2014-11-28 6 views

risposta

2

Um ... non ha funzionato per me. Farei

export PATH=$(pwd):$PATH

Il comando ha postato in precedenza letteralmente appena aggiunge il punto.

+0

che non ha funzionato per voi? – Baha

24

So che questa è una vecchia risposta, ma se qualcun altro si imbatte in questa domanda via Google come ho fatto io, ecco una spiegazione più dettagliata.

Se si vuole fare in modo che il percorso di ricerca contiene il valore del pwd al momento imposta il percorso di ricerca, fare:

export PATH=$PATH:$(pwd) 

Quindi, se pwd è /home/me/tmp, sarà impostato PATH a $PATH:/home/me/tmp

Tuttavia, se si desidera in modo che qualunque sia la vostra directory di lavoro attuale è al momento si esegue un comando (es: il valore di pwd in un dato momento si trova nel percorso di ricerca), fare:

export PATH=$PATH:. 

Quindi, se pwd è /home/me/tmp, PATH sarà impostato $PATH:.. Se la tua attuale directory di lavoro contiene uno script chiamato foo, allora sarebbe fonte nel tuo PATH. Se si cambiano le directory in una che non contiene foo, "pippo" non verrà più trovato nel PERCORSO.

Si noti che la presenza della directory di lavoro attuale nel PERCORSO rappresenta un potenziale rischio per la sicurezza.

+4

aggiungi sempre il. alla fine del percorso ... non l'inizio. metterlo all'inizio è il più grande rischio per la sicurezza. perché puoi sostituire comandi standard come ls. Pessima pratica Mettilo alla fine, i comandi standard saranno sempre emessi per primi. – DiamondDrake

+0

Grazie a @RickeyWard, hai assolutamente ragione. Ho modificato la risposta per riflettere il tuo suggerimento. –

+1

Il rischio qui è molto reale. Se creo un file eseguibile dannoso che prende il nome da un'utilità comune ('ls', ecc.) E ti induciamo a visitare la directory in cui si trova, è probabile che tu lo esegua e venga sfruttato. Questo non si applica facilmente agli host single-user ma è ancora un rischio non necessario. Mi raccomando contro qualsiasi directory relativa in '$ PATH'.Se hai una serie di comandi in una directory che usi solo a volte, è meglio scrivere uno script veloce che lo aggiunga (esplicitamente) al percorso. – Mark

1
export PATH=$PATH:$PWD 

opere con bash 4.3.48

1

Se volete permanentemente aggiungere la directory si è attualmente in alla variabile PATH è possibile utilizzare

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

che si espanderà $(pwd) alla stringa letterale della tua directory corrente e aggiungi la linea citata al tuo bashrc. Nota: \ in \$PATH è necessario per evitare l'espansione di $PATH al suo valore corrente.

$ 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 
Problemi correlati