Как добавить текущий каталог './' в путь поиска для исполняемых файлов в Linux?
Добавление любого текущего каталога './' в путь поиска в Linux
Ответ 1
Я знаю, что это старый ответ, но если кто-то еще споткнется через этот вопрос через Google, как я, вот более подробное объяснение.
Если вы хотите сделать так, чтобы путь поиска содержал значение pwd
в то время, когда вы установили путь поиска, выполните:
export PATH=$PATH:$(pwd)
Итак, если pwd
- /home/me/tmp
, PATH будет установлен на $PATH:/home/me/tmp
Однако, если вы этого хотите, чтобы вся ваша текущая рабочая директория была в момент выполнения команды (например, значение pwd
в любой момент времени находится в пути поиска):
export PATH=$PATH:.
Итак, если pwd
- /home/me/tmp
, PATH будет установлен на $PATH:.
. Если ваш текущий рабочий каталог содержит script, называемый foo
, то он будет создан в вашем PATH. Если вы меняете каталоги на тот, который не содержит foo
, "foo" больше не будет найден в PATH.
Следует отметить, что наличие существующего рабочего каталога в вашем PATH является потенциальным риском для безопасности.
Ответ 2
Эм... это не сработало для меня. Я бы сделал
export PATH=$(pwd):$PATH
Команда, ранее размещенная буквально, просто добавляет точку.
Ответ 3
export PATH=$PATH:$PWD
работает с bash 4.3.48
Ответ 4
Если вы хотите постоянно добавить каталог, в котором вы сейчас находитесь, в переменную PATH, вы можете использовать
$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc
который расширит $(pwd)
до строкового литерала вашего текущего каталога и добавит цитированную строку в ваш bashrc. Обратите внимание, что \
в \$PATH
требуется, чтобы избежать расширения $PATH
до его текущего значения.
$ 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