Как использовать rsync для резервного копирования каталога без подкаталога git


43

Я хочу скопировать мой cкаталог со всеми подкаталогами, кроме ./gitподкаталога. Я делаю это используя rsync:

echo "copy c and sh files "
rsync -a --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c
# remove .git directory = do not send it to dropbox. Thx to Tomasz Sowa
rm -rf ~/Dropbox/Public/c/.git

Могу ли я сделать это лучше?

Ответы:


48

Просто добавьте явное исключение для .git:

rsync -a --exclude='.git/' --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c

Другой вариант - создать ~/.cvsignoreследующую строку вместе с любыми другими каталогами, которые вы хотите исключить:

.git/


Указывается, как вы должны указать путь --exclude. Если у вас есть проблемы с этим, проверьте этот ответ .
Тотемедли

32

Вы можете просто использовать rsync --cvs-exclude. Он также игнорирует .gitкаталоги.

Но будьте осторожны, это также игнорирует каталоги, называемые coreв исходных файлах Magento.


10
Это работает для .gitкаталога верхнего уровня, но не для .gitкаталогов в подмодулях. Он также не игнорирует такие файлы, как Git .gitmodules.
maxschlepzig
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.