Como usar o rsync para fazer backup de um diretório sem o subdiretório git


43

Quero copiar meu cdiretório com todos os subdiretórios, exceto o ./gitsubdiretório. Eu faço isso usando 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

Posso fazer melhor?

Respostas:


48

Basta adicionar uma exclusão explícita para .git:

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

Outra opção é criar ~/.cvsignorecontendo a seguinte linha, juntamente com outros diretórios que você deseja excluir:

.git/


É especificado como você deve indicar o caminho --exclude. Se você tiver problemas, verifique esta resposta .
totymedli

32

Você pode apenas usar rsync --cvs-exclude. Ele também ignora .gitdiretórios.

Mas tome cuidado, pois isso também ignora diretórios chamados corecomo ocorrendo nos arquivos de origem do Magento.


10
Isso funciona para o .gitdiretório de nível superior, mas não para .gitdiretórios em submódulos. Ele também não ignora os arquivos do Git .gitmodules.
maxschlepzig
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.