rsync does not copy files recursively when -a and --files-from are used together: adi@stargate:~$ mkdir src dst; touch src/testfile; echo src > files adi@stargate:~$ rsync -a --files-from=files . dst adi@stargate:~$ find dst/ dst/ dst/src But it it's doing is recursively, when an additional -r is given: adi@stargate:~$ rm -rf dst/; mkdir dst adi@stargate:~$ rsync -ra --files-from=files . dst adi@stargate:~$ find dst/ dst/ dst/src dst/src/testfile
This is intentional. Please read the manpage.