A única diferença é que o primeiro comando,
cp -R /a/. /b
copiava arquivos e diretórios ocultos de /a
para /b
, enquanto o segundo comando,
cp -R /a/* /b
não faria isso.
A razão para o segundo comando não copiar arquivos ocultos é que o *
se expande para todos os nomes não ocultos em /a
(a menos que a opção dotglob
do shell esteja definida em bash
ou a opção equivalente em qualquer shell que esteja sendo usado, se disponível).
A pergunta original usou -r
no segundo comando em vez de -R
:
O sinalizador -r
é mantido em algumas implementações de cp
(% GNUcp
, por exemplo) para compatibilidade com versões anteriores. É um sinalizador não padrão para o comando cp
e, na implementação que o possui, é semelhante a -R
.
No GNU e AIX cp
, -r
e -R
são iguais. Em algumas implementações históricas de cp
, ele manipula arquivos especiais como FIFOs e sockets de maneira diferente. A implementação de cp -r/-R
do Solaris é diferente apenas para FIFOs ( -R
os recria, -r
lê a partir deles). Nenhum dos BSDs gratuitos tem -r
em suas implementações cp
.