cp -a
tenta fazer cópias o mais próximo possível da origem, incluindo metadados e informações de árvore.
cp -r
recursivamente copia arquivos e mantém o conteúdo, mas rende ao usuário que faz a cópia para os horários de modificação, permissões e usuário.
Então, basicamente, use apenas cp -a
, pois ele faz tudo que o cp -r
faz e mais.