Cómo usar rsync para hacer una copia de seguridad de un directorio sin el subdirectorio git


43

Quiero copiar mi cdirectorio con todos los subdirectorios, excepto el ./gitsubdirectorio. Lo hago 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

¿Puedo hacerlo mejor?

Respuestas:


48

Simplemente agregue una exclusión explícita para .git:

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

Otra opción es crear que ~/.cvsignorecontenga la siguiente línea junto con cualquier otro directorio que desee excluir:

.git/


Se especifica cómo debe dar la ruta --exclude. Si tienes problemas con esto, mira esta respuesta .
totymedli

32

Solo puedes usar rsync --cvs-exclude. También ignora los .gitdirectorios.

Pero tenga cuidado, que esto también ignora los directorios llamados corecomo ocurridos en los archivos fuente de Magento.


10
Esto funciona para el .gitdirectorio de nivel superior pero no para los .gitdirectorios en submódulos. Tampoco ignora los archivos Git como .gitmodules.
maxschlepzig
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.