Добавление любого текущего каталога './' в путь поиска в 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