То, что вы просите, - это более правильная обработка текста, чем обработка файлов, и это во многом зависит от того, какая программа использует текстовые файлы.
Традиционный простой способ сделать то, что вы хотите, - это иметь файл верхнего уровня, который включает другие файлы в модульном виде, например:
~ / .bash_profile:
source ~/dotfiles/bash/bash_profile
source ~/dotfiles/proj/bash_profile
Преимущество заключается в том, что вы можете комментировать вычерчивает строки для внесения временных изменений, и вы сохраняете намерение очевидным:
source ~/dotfiles/bash/bash_profile
# source ~/dotfiles/proj/bash_profile
source ~/dotfiles/proj2/bash_profile
Но если вы действительно хотите использовать символические ссылки для управления коллекцией файлов конфигурации bash
, есть хорошо зарекомендовавший себя способ сделать это с очень небольшим количеством «клея» поверх существующих символических ссылок.
Попробуйте создать каталог с именем (например) ~ / .bash_profiles
, который содержит ссылки с такими именами, как 00base
(указывающие на ~ / dotfiles / bash / bash_profile
]) и 10proj
(указывая на ~ / dotfiles / proj / bash_profile
), затем поместив это в ~ / .bash_profile:
for file in ~/.bash_profiles/* ; do source $file ; done
Затем вы можете активировать, деактивировать и изменить порядок config, манипулируя символическими ссылками и не редактируя файлы. Это работает, потому что расширение ~ / .bash_profiles / *
лексически отсортировано с помощью bash.
Именно так классический Unix / Linux init
позволяет управлять сценариями запуска системы. Вероятно, это будет излишним для bash
, если у вас нет очень сложного набора настроек для выборочной загрузки в зависимости от проекта, над которым вы работаете.
Во-первых, я, должно быть, выяснил, где расположены макросы:
aclocal --print-ac-dir
Атрибуция этой строки находится здесь .
В моем случае это:
/usr/share/aclocal
Поиск такого файла не дал результата:
ls /usr/share/aclocal | grep yelp
Итак, охота началась:
apt-cache policy yelp*
Есть 3 упакованных файла, два из них уже установлены, поэтому я установил недостающий :
sudo apt-get install yelp-tools
Повторяющийся поиск:
ls /usr/share/aclocal | grep yelp
Дал результат:
yelp.m4
Проблема решена.
Для этого вы можете использовать apt-file
, не обязательно зная, куда идут файлы M4:
apt-file search yelp.m4
сообщит вам, где конкретный файл должен быть расположен даже без установленного пакета ( yelp-tools
).
yelp-tools: /usr/share/aclocal/yelp.m4
Это говорит о том, что установка yelp-tools
позволит продолжить сборку.
В качестве альтернативы, вы можете проверить зависимости сборки файлового ролика
в Debian : в нем перечислены yelp-tools
вместе со всеми другими пакетами. вам понадобиться.
В Linux Mint 18 apt-файл
предварительно не установлен, но его легко установить:
sudo apt-get install apt-file
После установки вам нужно будет обновить его базу данных с помощью:
sudo apt-file update