Existe alguma diferença entre:
cp -R /a/* /b
e
cp -R /a/. /b
A ideia original era copiar qualquer coisa da pasta /a para a pasta /b.
Existe alguma diferença entre:
cp -R /a/* /b
e
cp -R /a/. /b
A ideia original era copiar qualquer coisa da pasta /a para a pasta /b.
A única diferença é que o primeiro comando,
copiaria arquivos e diretórios ocultos de
/a
para/b
, enquanto o segundo comando,não faria isso.
A razão para o segundo comando não copiar arquivos ocultos é que o
*
expande para todos os nomes não ocultos/a
(a menos que a opção shelldotglob
esteja definida embash
, ou a opção equivalente em qualquer shell que esteja sendo usado, se disponível).A pergunta original usada
-r
no segundo comando em vez de-R
:O sinalizador
-r
é mantido em algumas implementações decp
(GNUcp
, por exemplo) para compatibilidade com versões anteriores. É um sinalizador não padrão para ocp
comando e na implementação que o possui, é semelhante ao-R
.Em GNU e AIX
cp
,-r
e-R
são os mesmos. Em algumas implementações históricas docp
, ele trata arquivos especiais como FIFOs e soquetes de forma diferente. A implementação do Solariscp -r/-R
é diferente apenas para FIFOs (-R
recria-os,-r
lê-os). Nenhum dos BSDs gratuitos tem-r
em suascp
implementações.copia recursivamente e copia o tipo de arquivo original. Este é o único método recursivo mencionado no padrão POSIX.
é a opção histórica para cópia recursiva. Ele abre todos os arquivos e lê o conteúdo, depois cria arquivos simples com o conteúdo lido. Esta é a opção recursiva histórica do UNIX. Pode não estar disponível em implementações modernas.
Veja http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cp.html para a página man POSIX.