I had one 8TB hard drive to back up my stuff and rsync'ing that was easy. Now that my hoard has outgrown 8TB i bought another 8TB drive.

My question is, how can I tell rsync to only sync files to the second drive that are not on the first drive?

I tried creating a file list with

cd /q/backup; find -type f > /oldbackup.txt

which creates a file looking like


and then use it like

rsync -rvu --delete --exclude-from=/oldbackup.txt /x/live/a /x/live/b /r/backup/

but rsync still copied all files, seemingly ignoring the exclude list.

How do I get this to work?

Also, am I correct in assuming, that even if it worked, it would leave a lot of empty directories on the new backup?


1 Answer 1


Yes, the problem (at least in my case) seemed to be two things:

  • the leading ./ needed to be removed; rsync expects excludes to be specified either in an absolute manner or relative to the source directory.
  • literal file names needed to be escaped against regular expression syntax to avoid rsync trying to interpret them as an expression.

And yes, I did end up with a bunch of empty directories, but a script to delete empty directories is an adventure for another time.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .