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

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.

### 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).