When you ran rsync -avh --link-dest=full orig/ orig_1 , you ignored this error message (this is more obvious if you remove -v ):
--link-dest arg does not exist: full
If we look at man rsync in the --link-dest section, we find:
If DIR is a relative path, it is relative to the destination directory.
And here it is. full refers to the current directory. Regarding the target directory, this will be ../full .
If you try again with rsync -avh --link-dest=../full orig/ orig_1 , you will get what you expect:
$ du -sh * 149M full 149M orig 232K orig_1 $ du -sh . 298M .
Please note that when counting separately, the directories are still displayed in full:
$ du -sh orig_1 149M orig_1
This is because du keeps track of files that it has already seen and avoids counting them twice.
source share