Последствия наличия переменной переменной $ PATH?

Функция, которая мне действительно нужна, – это создать «виртуальные каталоги», объединив коллекцию реальных каталогов (так что ваш /usr/bin фактически является виртуальной вещью, указывающей на массив каталогов).

Однако эта функция, хотя и доступна в некоторых операционных системах, не является широко распространенной, и вы не можете ожидать, что она будет поддерживаться в ОС, которую вы будете использовать в следующем году, например.

На данный момент я использую переменную $ PATH в качестве обходного пути, сохраняя в ней всю коллекцию каталогов, которые я хочу «объединить» (и планирую использовать другие, такие как $ MANPATH, для страниц руководства, а также аналогичные эквиваленты для библиотек).

На данный момент я не сталкиваюсь с какой-либо проблемой производительности, поскольку коллекция «объединенных каталогов» невелика, но мне интересно, могу ли я испытывать проблемы в случае, если число придет в будущем в сотни каталогов (я не знаю, но знаю, будет ли такое большое число, хотя).

Ожидаемое количество «объединенных» каталогов, которые я предполагаю в обозримом будущем, составляет от 40 до 50 .

Обходные пути, которые я нашел для этой функции, в основном основаны на управлении символическими ссылками, тем самым эффективно отражая все файлы из всех объединенных каталогов как символические ссылки, указывающие на них из «унифицированного» каталога. Однако такой подход выглядит для меня огромной сложностью. Это не похоже на чистое, чистое решение.

Как вы думаете, я могу продолжить подход $ PATH, или я должен остановиться, пересмотреть и изучить другие варианты?

  • Должен ли я использовать символические ссылки в / usr / bin или вместо этого использовать переменную PATH?
  • Доступ к исполняемым файлам PgSQL из любого места
  • открыть файл, используя CDPATH и символическую ссылку
  • Можно ли указать путь, в котором имя каталога является переменной?
  • Bash: путь или ссылка на строку в файле?
  • Почему так много программ живут в PATH?
  • * в конце пути к каталогу
  • Разрешение местоположения / регистрации исполняемого файла в системе?
  • 2 Solutions collect form web for “Последствия наличия переменной переменной $ PATH?”

    Обычно оболочка кэширует информацию о том, где находятся внешние утилиты, что означает, что на самом деле нужно всего лишь выполнить один поиск для каждой не кэшированной утилиты.

    Я бы не ожидал, что наличие длинной $PATH вызовет серьезные проблемы с производительностью при использовании разумной оболочки.

    Для альтернативного решения взгляните на GNU Stow .

    Решение $PATH сильно зависит от успешной установки $PATH при загрузке, что приводит к сбою всей установки, если конфигурация окружения повреждена или удалена каким-то образом.

    Метод symlink более надежный, поскольку он в большей степени зависит от самостоятельности, хотя немного сложнее настроить.

    Проект GNU Stow и nixOS – это два способа использования метода symlink , который вы можете использовать или изучить для понимания того, как он работает на практике.

    Interesting Posts

    Где расположены сценарии postinstall для RPM?

    Подробный вывод в лог-файле и простой вывод на экран?

    Простой способ initrd для загрузки другого ядра с помощью kexec

    Установленный Fedora 18 на машине UEFI, получил lvm.mod не найдена ошибка

    Как запустить процесс с определенной группой?

    Вызов bash из sh (тире) с командами, считанными из args, и «Unterminated quoteed string» / «неожиданный EOF»

    Разделение аргумента командной строки bash

    Строки Grep до после, если значение строки больше нуля

    Список всех файлов, отображающих типы файлов.

    Буферы TCP продолжают заполняться (Recv-Q full): он называется unresponsive

    Выполнить vsim из dmenu – он работает только при непосредственном вызове в терминале

    Что значит . Команда ~ / .bashrc делает?

    Cryptsetup не находит libgcrypt.so после обновления

    Ubuntu: Конфигурация устройства кукольного f5: раздел '' не существует

    Как создать резервную копию виртуальных дисков с помощью PlayOnLinux?

    Linux и Unix - лучшая ОС в мире.