Comment ajoutez-vous un répertoire en cours './' au chemin de recherche des exécutables sous Linux?
Je sais que c'est une vieille réponse, mais si quelqu'un d'autre tombe sur cette question via Google, comme moi, voici une explication plus détaillée.
Si vous voulez que le chemin de recherche contienne la valeur pwd
au moment où vous définissez le chemin de recherche, faites:
export PATH=$PATH:$(pwd)
Donc, si pwd
est /home/me/tmp
, PATH sera défini sur $PATH:/home/me/tmp
Cependant, si vous voulez que votre répertoire de travail actuel soit au moment où vous exécutez une commande (par exemple, la valeur de pwd
est à tout moment dans le chemin de recherche), faites:
export PATH=$PATH:.
Ainsi, si pwd
est /home/me/tmp
, PATH sera défini sur $PATH:.
. Si votre répertoire de travail actuel contient un script appelé foo
, alors il sera inséré dans votre PATH. Si vous remplacez les répertoires par ceux qui ne contiennent pas foo
, "foo" ne sera plus trouvé dans le PATH.
Notez que le répertoire de travail actuel dans votre PATH constitue un risque potentiel pour la sécurité.
Si vous voulez de manière permanente ajouter le répertoire dans lequel vous vous trouvez actuellement à la variable PATH, vous pouvez utiliser
$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc
qui étendra $(pwd)
à la chaîne de caractères de votre répertoire actuel et ajoutera la ligne citée à votre bashrc. Notez que \
dans \$PATH
est nécessaire pour échapper à l'extension de $PATH
à sa valeur actuelle.
$ 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
Pour le répertoire actuel, vous pouvez simplement utiliser un nom de répertoire de longueur nulle (null). Vous pouvez utiliser un deux-points, initial ou final, ou un double-colon. Cela provient de la page de manuel bash, 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''.
export PATH=$PATH:$PWD
fonctionne avec bash 4.3.48
C'est une vieille question, mais je pensais y ajouter quelque chose pour ceux qui utilisent le CSH ou le TCSH.
Si vous ajoutez les éléments suivants à votre fichier .cshrc ou .tcshrc, le répertoire en cours sera ajouté à la variable du chemin d’environnement.
setenv PATH {$PATH}:.