Guia do Linux/Iniciante+Intermediário/Comandos para manipulação de Arquivos/cp
Aspeto
cp
[editar | editar código-fonte]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
parateste1.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).