Использование bash для автоматизации файлов точек - PullRequest
6 голосов
/ 08 марта 2011

Я хочу создать свою собственную автоматическую папку dotfiles. (Я буду использовать git для контроля версий в моих точечных файлах, но это не имеет значения для вопроса)

Я просто хочу символически связать все файлы и папки в ~/dotfiles с моей домашней папкой. Будучи не очень хорошим с Bash, я не могу этого сделать. Пожалуйста, помогите мне с этим.

Я также буду признателен за следующие возможности, если это возможно.

  • Папки только поверхностно связаны
  • Мои файлы могут находиться в папке dotfiles без фактической точки в имени файла (например, ~/dotfiles/vimrc вместо ~/dotfiles/.vimrc)
  • Он должен иметь возможность игнорировать некоторые файлы, такие как мой файл .git, которые хранятся в той же папке

Конечно, если вы уже знаете службу, предоставляющую это, это по крайней мере так же хорошо, как предоставление некоторых команд "сделай сам". Обратите внимание, что я специально хочу, чтобы это был bash или что-то, что, скорее всего, существует на всех машинах Unix (так что я думаю, команды с использованием g ++ хороши).

Ответы [ 5 ]

7 голосов
/ 09 марта 2011

Попробуйте:

ln -s ~/dotfiles/* ~

Не должно быть необходимости в петле. Конечно, вы можете использовать find, если вам нужно что-то рекурсивное.

Edit:

Чтобы скрыть файлы назначения:

for f in ~/dotfiles/*
do
    ln -s "$f" "$HOME/.${f##*/}"
done
0 голосов
/ 16 октября 2017

У Atlassian есть учебник по с использованием рабочего дерева git вместо символических ссылок . Подход использует:

  1. пустой git-репозиторий в боковой папке (такой как $HOME/.cfg или $HOME/dotfiles) и
  2. a config псевдоним bash для выполнения команд git, управляющих файлами конфигурации.

Например, вы можете запустить config status, чтобы проверить, какие файлы были изменены, config checkout, чтобы получить файлы в хранилище, и config commit, чтобы обновить хранилище. Требуется только git и bash.

0 голосов
/ 13 апреля 2015

Может быть, вы ищете менеджер dotfiles, я рекомендую вам проверить DFM (менеджер dotfiles). DFM решает вашу проблему очень чисто:

0 голосов
/ 25 ноября 2012

Ради управления точечными файлами мне очень нравится подход Зака ​​Холмана.Я сделал то же самое с моими точечными файлами, которые вы можете найти здесь:)

https://github.com/rhacker/dotFiles

0 голосов
/ 08 марта 2011

Я не уверен, правильно ли я понял вопрос, но если вы ищете символические ссылки dir-контента, попробуйте

for f in `ls -1 .dotfiles`
do
   ln -s .dotfiles/$f ~/$f
done

возможно, это уже помогает

...