Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to copy my c directory with all subdirectories excluding ./git subdirectory. I do it using 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

Can I do it better?

share|improve this question
up vote 24 down vote accepted

Just add an explicit exclude for .git:

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

Another option is to create ~/.cvsignore containing the following line along with any other directories you'd like to exclude:


share|improve this answer
Works good. Thx. I was trying some options without success. – Adam Nov 10 '13 at 15:57
@Adam : If you are satisfied with this answer, please tick the checkmark on the left. – goldilocks Nov 10 '13 at 16:06

You can just use rsync --cvs-exclude. It also ignores .git directories.

But take care, that this also ignores directories called core as occurring in Magento source files.

share|improve this answer
+1 for "But take care..." – omikron Jul 2 '14 at 9:12
This works for the top level .git directory but not for .git directories in submodules. It also does not ignore Git files like .gitmodules. – maxschlepzig Jul 17 '14 at 17:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.