Em computação, cp é um comando em vários sistemas operacionais Unix usado para copiar arquivos e diretórios. O comando possui três modos de operação, definido pelos tipos de argumentos passados ao programa: copiar um arquivo para outro arquivo, copiar um ou mais arquivos para um diretório, ou copiar diretórios inteiros para outro diretório.

cp
Captura de tela
Cp (Unix)
Operação no terminal mostrando exemplo de uso do comando
Desenvolvedor AT&T Bell Laboratories
Lançamento 3 de novembro de 1971; há 53 anos
Sistema operacional Unix e Unix-like
Gênero(s) Comando

O utilitário aceita várias opções da linha de comando (flags) para detalhar as operações realizadas. As duas maiores especificações são o POSIX cp e o GNU cp.[1][2]

História

editar

O comando cp é parte do Version 1 Unix. Originalmente, o comando funcionava apenas com listas de pares origem-destino. Muito frequentemente, listas de pares na ordem errada faziam com que arquivos importantes fossem sobrescritos. Como consequência, tanto o cp quanto o mv voltaram a funcionar com apenas um par origem-destino na nova versão. As convenções finais surgiram apenas após longas discussões sobre como lidar corretamente com permissões de arquivos e múltiplos arquivos. [3]

Copiando arquivo(s) para outro arquivo:

 cp [-H | -L | -P] [-fi | -n] [-apvXc] arquivo_origem arquivo_destino

Copiando arquivo(s) para um diretório:

 cp [-H | -L | -P] [-fi | -n] [-apvXc] arquivo_origem ... diretorio_destino

Copiando um diretório para um diretório (-r ou -R deve ser usado)

 cp -r|-R [-H | -L | -P] [-fi | -n] [-apvXc] diretorio_origem ... diretorio_destino

Flags de opções

editar
  • i (interativo) – faz uma confirmação antes de copiar um arquivo que iria sobrescrever outro arquivo. Se o usuário digitar y (ou s dependendo da regionalização do sistema), o comando cp continua.
  • f (forçar) – se o arquivo não puder ser aberto, remove e cria um novo arquivo, sem pedir confirmação.
  • r (recursivo) – copia recursivamente os arquivos contidos dentro dos subdiretórios da origem.
  • p (preservar) – preserva os atributos do arquivo de origem no arquivo de destino, como dono, data, hora, permissões.
  • v (verboso) – mostra qual arquivo está sendo copiado no momento.
  • r ou R (recursivo) – copia diretórios recursivamente.

O arquivo de origem e o destino da cópia podem residir em sistemas de arquivo diferentes, ou até no mesmo diretório desde que tenham nomes diferentes. Este comando copia também mais de um arquivo de um diretório para outro. É necessário ter permissão de escrita no destino da cópia.[4]

Exemplos

editar

Cria uma cópia de um arquivo no diretório atual:

 cp arquivo.txt arquivo.bak

Esse comando copia prog.c para prog.bak. Se o arquivo prog.bak já existir, ele será sobrescrito.

Copiar um diretório com seus conteúdos para outro:

 cp -R /home/user/projeto /home/user/novo_projeto

Esse comando copia o diretório projeto, com todos seus arquivos, subdiretórios e arquivos dos subdiretórios para o diretório novo_projeto.

Notas e Referências

  1. «Especificação POSIX do cp». https://www.opengroup.org/. Consultado em 30 de março de 2019 
  2. «GNU Coreutils: cp invocation». www.gnu.org. Consultado em 30 de março de 2019 
  3. M. Douglas McIlroy (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Relatório) 139 ed. Bell Labs. Consultado em 30 de março de 2019 
  4. Burtch, Ken O. Ciência Moderna, ed. Scripts de Shell Linux com Bash. 2005 1 ed. Rio de Janeiro: [s.n.] 522 páginas. 8573934050 

Veja também

editar
  Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.