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

38

Eu quero copiar meu diretório c com todos os subdiretórios, excluindo o subdiretório ./git . 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?

    
por Adam 10.11.2013 / 16:42

2 respostas

43

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 ~/.cvsignore contendo a seguinte linha junto com qualquer outro diretório que você queira excluir:

.git/

    
por 10.11.2013 / 16:47
28

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

Mas tome cuidado, isso também ignora os diretórios chamados core como ocorrendo nos arquivos fonte do Magento.

    
por 20.06.2014 / 09:40