Как я могу очистить повторяющиеся записи из моего PATH?

В настоящее время мой $ PATH имеет две идентичные записи для /usr/local/bin и мне любопытно, есть ли способ их очистки, или я просто не должен беспокоиться об этом. Это выглядит так (разбито на читаемый список):

 /Users/myself/.rvm/gems/ruby-2.0.0-p353/bin /Users/myself/.rvm/gems/ruby-2.0.0-p353@global/bin /Users/myself/.rvm/rubies/ruby-2.0.0-p353/bin /usr/local/bin <--( Here ) /usr/bin /bin /usr/sbin /sbin /usr/local/bin <--( Here ) /opt/X11/bin /usr/texbin /Users/myself/.rvm/bin 

  • Повторяются ли повторяющиеся записи в переменной PATH с приоритетом, заданным первой записью?
  • Можно ли добавить один исполняемый файл, а не весь каталог, в мой $ PATH?
  • Как работать с командой dfspace?
  • разница между / var / www и / usr / local
  • Добавьте несколько подкаталогов под одним и тем же родительским каталогом в PATH
  • Проблема с файловым пути
  • добавление пути samtools
  • Проблема с LD_LIBRARY_PATH, программа не может найти библиотеку.
  • 2 Solutions collect form web for “Как я могу очистить повторяющиеся записи из моего PATH?”

    Один из способов сделать это – просто пересмотреть свой путь

     export PATH=/Users/myself/.rvm/gems/ruby-2.0.0-p353/bin: /Users/myself/.rvm/gems/ruby-2.0.0-p353@global/bin: /Users/myself/.rvm/rubies/ruby-2.0.0-p353/bin: /usr/local/bin: /usr/bin: /bin /usr/sbin: /sbin: /opt/X11/bin: /usr/texbin: /Users/myself/.rvm/bin: 

    (Вам нужно поместить все это на одну строку.)

    Хотя определение пути в два раза не повредит. Исправить это зависит только от того, как OCD вы.

    Чтобы это продолжалось при перезагрузке и в новых окнах терминала, вам необходимо изменить сценарий запуска (~ / .profile, ~ / .bashrc, / etc / environment)

    Это связано с тем, что вы кое-что изменили и дважды добавили один и тот же путь. Я избегаю этого, используя небольшую небольшую функцию, модифицирую мою $PATH , которая добавит только каталог, если он еще не присутствует:

     pathmunge () { if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi fi } 

    У меня есть эта функция в файле .profile и определяю мой путь как:

     pathmunge $HOME/bin pathmunge $HOME/scripts export PATH 

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

    Если вы просто хотите быстро удалить существующие обманы, сделайте следующее:

     PATH=$(echo $PATH | tr ':' '\n' | perl -lne 'chomp; print unless $k{$_}; $k{$_}++' | tr '\n' ':' | sed 's/:$//') 

    Я использую perl вместо sort -u чтобы сохранить порядок каталогов без изменений.

    Interesting Posts

    Выполнение задания Cron при удалении

    Чтобы выполнить резервное копирование на диск XFS с помощью образа и уровня файловой системы

    APT-получить; понимаете, где указаны имена пакетов?

    Как указать альтернативную корневую файловую систему во время загрузки

    Почему «v» в mkfs.vfat?

    LINUX: Как вычислить рекурсивно размер каждой подкаталога до корневого каталога?

    Цветная настройка цвета консоли Bash

    Не удается открыть google chrome stable на элементарной os freya

    Обеспечивает ли SELinux достаточную дополнительную безопасность, чтобы быть в курсе обучения / настройки?

    Старая машина Linux, которую вы все еще запускаете

    lshw segfaults на Linux> = 4.8 из-за упрощенной пользовательской копии на многих компьютерах

    Команды / скрипт Bash для удаления строки из CSV с дубликатом в столбце

    Зачем ограничивать количество инодов, к которым пользователь может получить доступ?

    Как я могу перейти в каталог на определенной глубине в текущем дереве?

    Архитектура менеджера пакетов Linux

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