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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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