Я бачив, як люди чистять дублікати зі своєї змінної PATH, використовуючи awk
щось подібне:
PATH=$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ { if (NR > 1) printf RS; printf $1 }')
Ви можете спробувати додати це до власного bashrc та переконайтесь, що ви інші джерела десь запустили, перш ніж це запустити.
Альтернативи можна було б використовувати наpathmerge
корисність.
Що стосується вашої проблеми зі швидкістю, це не вплине на час запуску оболонки жодним суттєвим чином, але це може заощадити певний час на виконання вкладки для команд, особливо коли команда не знайдена в шляху і вона повторює пошук через те саме папки, які шукають його.
Примітка про безпеку: Ви дійсно повинні прислухатися до попереджень Гілла щодо безпеки тут. Створюючи файл, що належить іншому користувачеві, ви отримуєте безкоштовний пропуск для тих користувачів, щоб виконувати власний код як ваш користувач щоразу, коли ви запускаєте оболонку. Якщо ви не довіряєте цим користувачам свій пароль, вам не слід шукати файли оболонки.