Это интересный вопрос.
При использовании rsync -R
файл tmp/data
будет скопирован в каталог назначения.
Дело в том, что когда rsync будет копировать, он сначала проверит, существует ли файл в каталоге, заданном параметром--link-dest
:
Это означает, что он будет сравнивать /tmp/bak/*
с /tmp/data/*
.
Проблема в том, что при запуске команды rsync -R
файл foo
не будет находиться в месте, которое можно сравнить с /tmp/data/ для выполнения ссылки, он будет в /tmp/bak/tmp/data/foo
, в то время как rsync, по глупости, сделает для него жесткую ссылку только в том случае, если это корень каталогов, указанных (в этом примере, /tmp/data
и/tmp/bak
).