cp - copia arquivos e diretórios
cp [opções] arquivo
caminho
cp [opções] arquivo...
diretório
Opções POSIX: [-fipRr]
Opções GNU (forma reduzida):
[-abdfilprsuvxPR] [-S SUFFIX] [-V
{numbered,existing,simple}] [--sparse=WHEN]
[--help] [--version] [--]
cp copia arquivos (ou, opcionalmente diretórios).
Você pode copiar uma arquivo para um destino fornecido, ou copiar
arbitrariamente muitos arquivos para um diretório destino.
Se o último argumento de nome é um diretório
existente, cp copia cada arquivo origem para aquele
diretório (com o mesmo nome). De outra forma, se somente dois
arquivos são fornecidos, ele copia o primeiro para o segundo.
É um erro se o último argumento não for um
diretório e mais que dois argumentos serem fornecidos.
(Assim, 'cp -r /a /b' irá copiar /a to /b/a e /a/x para
/b/a/x no caso de /b já existir, mas ele irá copiar /a para /b
e /a/x para /b/x se não havia /b antecipadamente.)
O modo de criação dos arquivos e diretórios
será igual ao dos arquivos originais, por 0777, e modificado pela
umask do usuário (a menos que a opção -p especificada).
(Mas durante cópia de diretórios de forma recursiva,
diretórios recentemente criados terão temporariamente recebido
o modo final deles ORed com S_IRWXU (0700), para que possa permitir
processos de leitura, escrita e procura nos diretório recentemente
criados.)
Coisa alguma é feita quando tenta copiar um arquivo para si
mesmo (exceto possivelmente de uma mensagem de erro). Quando copiando para
um arquivo existente diferente este é aberto usando 'open(caminho,
O_WRONLY | O_TRUNC)'. Quando copiando para um novo arquivo este é
criado usando 'open(caminho, O_WRONLY | O_CREAT, modo)'. Se isto falha, o
arquivo existe, e a opção -f deve ser dada, cp
tentará deletar (unlink) o arquivo existente, e então
substituir pelo novo arquivo.
OPÇÕES POSIX
POSIX reconhece 4 opções e meia:
- -f
- Remove arquivos destinos existentes se requerido. (Veja acima.)
- -i
- Pergunta se deve ser;a sobrescrito um arquivo de destino regular. (Escreve
a questão no erro padrão, e lê a resposta na entrada
padrão. Somente copia sobre em caso de resposta afirmativa..)
- -p
- Preserva o original proprietário, grupo, permissões
(incluindo os bits setuid e setgid), tempo da última
modificação e o tempo do último acesso. No caso da de
duplicação do proprietário ou grupo falhar, os bits
setuid e setgid serão zerados. (Note que mais tarde a origem e a
cópia deverão ter diferentes tempo de último acesso,
desde que a operação de cópia é um acesso no
arquivo origem.)
- -R
- Copia diretórios de forma recursiva, e faz algo incerto quando
outros objetos a não ser arquivos ordinários ou
diretóriso são encontrados. (Assim, a cópia de um
FIFO ou arquivo especial é um FIFO ou um arquivo especial.)
- -r
- Copia diretórios de forma recursiva, e faz alguma coisa
inespecífica com outros objetos que não são arquivos
normais ou diretórios. (Assim, ele é permitido, na realidade
encorajado, para ter a opção -r um sinônimo para -R.
De qualquer forma, o comportamento bobo, desse jeito da presente
versão GNU de cp (veja abaixo) não é
proibida.)
Geralmente, arquivos são escritos da mesma forma que
são lidos. Para exceções, veja a opção
--sparse abaixo.
Por padrão, 'cp' não irá copiar
diretórios (veja -r abaixo).
cp geralmente recusa a copia de uma rquivo em si mesmo, com
a segunte exceção: se --force --backup é
especificado com origem e destino identicos, e referindo-se a
um arquivo regular, cp irá fazer um arquivo de cópia de
segurança, que pode ser regular ou numerado, como especificado em
formas usuais. Isto é útil quando se procura um modo simples
para fazer cópias de segurança de um arquivo existente depois
de alterá-lo.
OPÇÕES GNU
- -a, --archive
- Preserva o máximo possível a estrutura e atributos dos
arquivos originais na cópia (mas não preserva a estrutura do
diretório). Equivalente para -dpR.
- -d,
--no-dereference
- Copia ligações simbólicas com ligações
simbólicas no lugar de copiar os arquivos para as quais apontam, e
preservam ligações fortes entre arquivos de origrem nas
cópias.
- -f, --force
- Remove os arquivos de destino existentes, e nunca pergunta antes de fazer
isto.
- -i, --interactive
- Pergunta se será sobrescrito o arquivo regular de destino.
- -l, --link
- Cria ligações fortes ao inves de cópia de nào
diretórios.
- -p, --preserve
- Preserva a original proprietário, grupo, permissões e
rótulo de tempo.
- -P, --parents
- Forma o nome de cada arquivo destino pelo anexação no
diretório destino de um barra e o nome especificado do arquivo
origem. O último argumento fornecido para cp deve ser o nome
de um diretório existente. Por exemplo, o comando:
cp --parents a/b/c diretório_existente
copia o arquivo 'a/b/c' para o 'diretório_existente/a/b/c', criando
qualquer diretório intermediário perdido.
- -r
- Copia diretórios de forma recursiva, copiando qualquer
não-diretório e não-ligação
simbólica (isto é, FIFOs e arquivos especiais) como se
fossem arquivos regulares. Isto significa tentar uma leitura em cada
arquivo origem e uma escrita para o destino. Assim, com esta
opção, (Isto é uma falha. Ele pensar que você
tem que evitar -r e usa -R se você não sabe o que esta na
árvore que você está copiando. Abrindo um arquivo de
dispositivo desconhecido, por exemplo um scanner, tem efeito desconhecido
sobre o hardware.)
- -R, --recursive
- Copia diretórios de forma recursiva, preservando os
não-diretórios (veja -r acima).
- --sparse=WHEN
- Um 'arquivo espaçado' contem 'buracos' - seqüencias de zero
bytes que não ocupam qualquer bloco de disco físico; a
chamada de sistema 'read' lê estes como zeros. Isto pode economizar
espaço de disco e aumentar a velocidade, desde que muitos arquivos
binários contenham lotes consecutivos de zero bytes. Por
padrão, cp detecta buracos no arquivo de entrada via uma
heuristica bruta e cria a saída correspondente saída
espaçada também.
O valor WHEN pode ser um dos seguintes:
- auto
- O comportamento padrão: o arquivo de saída e espaçado
se o arquivo de entrada é espaçado.
- always
- Sempre cria um arquivo de saída espaçado. Isto é
útil quando o arquivo de entrada reside num sistema de arquivo que
não suporta arquivos espaçados, mas o arquivo de
saída está sobre o sistema de arquivos que suporta.
- never
- Nunca crie um arquivo de saída espaçado. Se você
encontrar uma aplicação para esta opção,
deixe-nos saber.
- -s,
--symbolic-link
- Cria um ligação simbólica ao invês de copiar
sobre não-diretórios. Todo nome da origem deve ser absoluto
(comecando com '/') a menos que o arquivo de destino esteja no
diretório corrente. Esta opção meramente resulta em
uma mensagem de erro em sistemas que não suportam
ligações simbólicas.
- -u, --update
- Não copia um não-diretório que tem um destino
existente com o igual ou maior tempo de modificação.
- -v, --verbose
- Imprime o nome de cada arquivo antes de copia-lo.
- -x,
--one-file-system
- Pula sub-diretórios que são de diferentes sistemas de
arquivos do qual a cópia tenha.
OPÇÕES GNU DE CÓPIAS DE
SEGURANÇA
As versões GNU de programas como, cp, mv,
ln, install e patch podem criar cópias de
segurança dos arquivos que foram sobrescritos, alterados ou
destruídos, se isto for desejado. Aqueles arquivos de
seguranças são pedidos pela opção -b. E nomeados
como é especificado pela opção -V. No caso de o nome do
arquivo de segurança for fornecido pelo nome do arquivo mais um
sufixo, o sufixo é especificado pela opção -S.
- -b, --backup
- Cria cópias de segurança dos arquivos que são
sobrescritos ou removidos.
- -S SUFIXO,
--suffix=SUFIXO
- Anexa o SUFIXO para cada arquivo de segurança feito. Se esta
opção não é especificada, o valor da
variável de ambiente SIMPLE_BACKUP_SUFFIX é usada. E
se SIMPLE_BACKUP_SUFFIX não for selecionada, o padrão
é '~'.
- -V MÉTODO,
--version-control=MÉTODO
Especifíca como as cópias de
segurnaça serão nomeadas. O argumento
MÉTODO pode
ser 'numeradas' (ou `t'), 'existing' (ou `nil'), or 'never' (or `simple'). Se
esta opção não é especificada, o valor da
variável de ambiente
VERSION_CONTROL é usado. E se
VERSION_CONTROL não é selecionado, o tipo padrão
das cópias de segurança é 'existing'.
Esta opção correspnde a variável Emacs
'version-control'. Os MÉTODOs são válidos
(abreviações unicas são aceitas):
- t, numbered
- Sempre fará cópias de segurança numeradas.
- nil,
existing
- Fará cópia de segurança numeradas de arquivos, e
simples cópias de segurança dos outros.
- never,
simple
- Sempre fará cópias de segurança simples.
OPÇÕES PADRÃO GNU
- --help
- Imprime a mensagem de uso na saída padrão e sai.
- --version
- Imprime a versão na saída padrão e sai.
- --
- Encerra a lista de opção.
As variáveis LANG, LC_ALL, LC_CTYPE and LC_MESSAGES tem seu
significado usual. Para versões GNU, as variáveis
SIMPLE_BACKUP_SUFFIX e VERSION_CONTROL controlam as cópias de
segurança nomeando arquivo, como descritas acima.
Esta página descreve cp é encontrada no
pacote Utilitários de Arquivos 4.0; outras versões podem ser
um pouco diferente. Envie correções e adições
para aeb@cwi.nl. Relatório de problemas no programa para
fileutils-bugs@gnu.ai.mit.edu.
André L. Fassone Canova
<lonelywolf@blv.com.br> (tradução)
Ricardo C.O. Freitas <english.quest@best-service.com>
(revisão)