Instead of
cp -afv
wouldn't be better
sh code:
tar -cpsC /absolute/path/to/source/ `ls -A /absolute/path/to/source/` | tar -xpsvC /absolute/path/to/destination/
This should handle better the hardlinks. Or maybe better:
sh code:
rsync -aHv /path/to/source/ /path/to/destination