Diferença no argumento cp-R?

2

Existe alguma diferença entre:

cp -R /a/* /b 

e

cp -R /a/. /b

A ideia original era copiar qualquer coisa de folder / a para folder / b.

    
por prosti 04.07.2018 / 20:22

2 respostas

2

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 .

    
por 04.07.2018 / 20:29
-1
cp -R

copia recursivo e copia o tipo de arquivo original. Este é o único método recursivo mencionado no padrão POSIX.

cp -r

é 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 o link para a página man do POSIX.

    
por 04.07.2018 / 20:26

Tags