How to mirror one folder to another using rsync 3.x

file-transferrsync

I have compiled rsync 3.0.9 just because the one included in Mavericks is so old.

Anyway, I am trying to mirror a folder in my main HDD in another HDD. I don't think it matters but both are connected via SATA and both are formatted as HFS (case-insentive and journaled).

I ran:

rsync -ahv --delete --exclude="my-exclude-file.txt" --iconv=utf-8-mac,utf-8 --progress /sources/ /destination/

and it doesn't skip the m4a/mp3 files it has processed already!

Any ideas what I could be doing wrong? Thanks a lot 🙂

Best Answer

If you add the itemised "-i" or "--itemize-changes" option to your command rsync will tell you why it is transferring the files.

For each file you'll see a strings that looks like ">f..t......". The format of the string is "YXcstpoguax". Y is the direction of the transfer. X is the type of object being transferred (for example 'f'ile, 'd'irectory). The rest of the string documents the changes.

  • c for checksum
  • s for size
  • t for modification time
  • p for permissions
  • o for owner
  • g for group
  • u is currently reserved for future use
  • a for ACL permissions
  • x for extended attributes

So in my example above it transferred the file because the modification time was different.

This should help you identify why the files are still being transferred.