Diferença entre cp -r e cp -a

128

Estou procurando a diferença entre cp -r e cp -a . O que "recursivo" significa em termos de copiar arquivos de uma pasta?

    
por Randy 07.08.2012 / 23:36

2 respostas

149

Recursivo significa que cp copia o conteúdo dos diretórios e, se um diretório tiver subdiretórios, eles serão copiados (recursivamente) também. Sem -R , o comando cp ignora os diretórios. -r é idêntico ao -R no Linux, ele difere em alguns casos de borda em algumas outras variantes do unix.

Por padrão, cp cria um novo arquivo com o mesmo conteúdo que o arquivo antigo e as mesmas permissões, mas restringidas pelo umask ; a cópia é datada da hora da cópia e pertence ao usuário que fez a cópia. Com a opção -p , a cópia tem o mesmo horário de modificação, o mesmo tempo de acesso e as mesmas permissões que o original. Ele também tem o mesmo proprietário e grupo do original, se o usuário que fez a cópia tiver permissão para criar esses arquivos.

A opção -a significa -R e -p , além de algumas outras opções de preservação. Ele tenta fazer uma cópia que seja a mais próxima possível do original: mesma árvore de diretórios, mesmos tipos de arquivos, mesmos conteúdos, mesmos metadados (horas, permissões, atributos estendidos, etc.).

    
por 08.08.2012 / 02:59
12

A opção -r ou -R para "recursiva" significa que copiará todos os arquivos, incluindo os arquivos dentro de subpastas.

A opção -a, conforme listada, é a mesma que -dR, o que significa que ela preservará os links, além de copiar o conteúdo dos subdiretórios. O que significa preservar os links é que eles não seguirão os links, já que são recursivamente copiados.

    
por 07.08.2012 / 23:47