Saltar para o conteúdo

Guia do Linux/Iniciante+Intermediário/Comandos para manipulação de Arquivos/cp

Origem: Wikilivros, livros abertos por um mundo aberto.

Copia arquivos.

cp [opções] [origem] [destino]

onde:

origem
Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas" (veja [ch-bas.html#s-basico-curingas Curingas, Seção 2.12]).
destino
O caminho ou nome de arquivo onde será copiado. Se o destino for um diretório, os arquivos de origem serão copiados para dentro do diretório.
opções
i, --interactive
Pergunta antes de substituir um arquivo existente.
-f, --force
Não pergunta, substitui todos os arquivos caso já exista.
-r
Copia arquivos dos diretórios e subdiretórios da origem para o destino. É recomendável usar -R ao invés de -r.
-R, --recursive
Copia arquivos e sub-diretórios (como a opção -r) e também os arquivos especiais FIFO e dispositivos.
-v, --verbose
Mostra os arquivos enquanto estão sendo copiados.
-s, --simbolic-link
Cria link simbólico ao invés de copiar.
-l, --link
Faz o link no destino ao invés de copiar os arquivos.
-p, --preserve
Preserva atributos do arquivo, se for possí­vel.
-u, --update
Copia somente se o arquivo de origem é mais novo que o arquivo de destino ou quando o arquivo de destino não existe.
-x
Não copia arquivos que estão localizados em um sistema de arquivos diferente de onde a cópia iniciou.
-a
Copia todos os artibutos (preservando proteção, dono e datas)
--preserve=timestamps
Preserva, dos atributos, apenas aqueles relativos à data (veremos mais abaixo quando usar)

O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino terão o mesmo conteúdo após a cópia.

Exemplos:

cp teste.txt teste1.txt
Copia o arquivo teste.txt para teste1.txt.
cp teste.txt /tmp
Copia o arquivo teste.txt para dentro do diretório /tmp.
cp * /tmp
Copia todos os arquivos do diretório atual para /tmp.
cp /bin/* .
Copia todos os arquivos do diretório /bin para o diretório em que nos encontramos no momento.
cp -R /bin /tmp
Copia o diretório /bin e todos os arquivos/sub-diretórios existentes para o diretório /tmp.
cp -R /bin/* /tmp
Copia todos os arquivos do diretório /bin (exceto o diretório /bin) e todos os arquivos/sub-diretórios existentes dentro dele para /tmp.
cp -R /bin /tmp
Copia todos os arquivos e o diretório /bin para /tmp.
cp -auv /home/usuario1/pasta1/* /home/usuario2/pasta2/
Copia todos arquivos (e sub-pastas) que estão na conta de um usuário para uma pasta de outro. Requer privilégios de escrita sobre o diretório destino e, provavelmente, sobre o diretório origem - já que ao preservar dono, o comando deixará o destino com o dono original (usuário1) em vez do dono desejado (usuário2)
cp -uvR —-preserve=timestamps /media/CDROM/meubackup/* /home/meubackup/
Como vimos acima, o comando natural para restaurar um backup de CD ou DVD seria cp -auv; porém aqui ocorre um bug: ao iniciar a cópia com a opção de preservar os atributos de proteção, como os CDs e DVDs são read-only, estas opção são marcadas nas pastas criadas, impedindo a cópia dos arquivos seguintes. Então a solução é ignorar os atributos exceto os de data (trocando a opção -a pela opção --preserve=timestamps) e acrescentando a opção -R (para fazer recursão nos subdiretórios).