web-dev-qa-db-fra.com

Comment utiliser rsync pour sauvegarder un répertoire sans sous-répertoire git

Je veux copier mon répertoire c avec tous les sous-répertoires à l'exception de ./git sous-répertoire. Je le fais en utilisant 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

Puis-je faire mieux?

49
Adam

Ajoutez simplement une exclusion explicite pour .git:

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

Une autre option consiste à créer ~/.cvsignore contenant la ligne suivante ainsi que tout autre répertoire que vous souhaitez exclure:

.git/

56
Quetza

Vous pouvez simplement utiliser rsync --cvs-exclude. Il ignore également .git répertoires.

Mais attention, cela ignore également les répertoires appelés core comme se produisant dans les fichiers source de Magento.

32
sebastianwagner