I’m cleaning up. As a lamer SysAdmin that I am, I have several HDs floating around, each one with a different backup of my systems. I decided to clean up this mess, now that they sell 4 TB portable hard drives. If possible, the best technique to do this is an rsync: you can use it to tell you the differences between folders before copying them over (so called DRY RUN).
To run one dry, from the folder you are to the destination you need to type:
rsync -avn * /backup/destination/
To make it real, just remove then “n”. Like this:
rsync -av * /backup/destination/
The command will copy everything (*) that is not on /backup/destination/ from the current folder to /backup/destination/. This runs flawlessly, supposing you have everything coming from Linux, going to Linux. Unfortunately this is not the case. When your backup disk is having a GPT or a NTFS format, so that it can be read by OSX or Windows, you may get this function not implemented error. I tried as suggested
rsync -ahv --no-o --no-g * /backup/destination/
but no luck. The permissions are not managed as they should, the error still appears. However, the files are copied to the backup destination, so so far so good. If you want to do the things right, anyway, you can try this solution. Translated to my example, it reads:
rsync -rltDv * /backup/destination/
Now I don’t get function not implemented error. Not that I care, provided the files were copied over, but it’s good to know, just in case.