Я использую Ubuntu 12.04 TLS, в котором у меня есть репозиторий git в определенном каталоге. Я пытаюсь сделать запланированную резервную копию репозитория и поместить ее в определенный каталог, который можно будет отправить по почте.
В процессе я узнал, как найти все репозитории git в определенном каталоге, погуглив, я нашел следующую команду:
find /home/mysys/D/ -name .git -type d -prune
но он содержит путь как
/home/mysys/D/testing/.git
который выводит список всех файлов git, связанных с каталогом, и он работает, но мне нужно выполнить git bundle create directoryname.bundle --all, чтобы сделать его более автоматизированным, в котором я попробовал следующее
find /home/mysys/D/ -name .git -type d -prune -exec git bundle create test.bundle --all {} \;
Приведенный выше скрипт bash возвращает
fatal: Invalid gitfile format: .git
Как это сделать, чтобы все работало надежно.
Заранее спасибо.
решение1
Ты хочешь бытьвкаталог, контролируемый git, когда git bundle
выполняется, поэтому используйтеfind ... -execdir ... \;
find /home/mysys/D/ -type d -name .git -prune -execdir git bundle create backup.bundle --all \;
Это создаст backup.bundle во всех этих каталогах. Оттуда вы можете переместить их или обработать их с помощью дополнительных скриптов. Но сторона связывания вещей обрабатывается.