NOME
cp − copia arquivos e diretórios
SINOPSE
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] [−−]
DESCRIÇÃO
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.) |
DETALHES GNU
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. |
AMBIENTE
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.
DE ACORDO COM
POSIX 1003.2
NOTAS
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 [AT] cwi.nl. Relatório de problemas no programa para fileutils-bugs [AT] gnu.edu.
TRADUZIDO POR LDP-BR em 21/08/2000.
André L. Fassone Canova <lonelywolf [AT] blv.br> (tradução) Ricardo C.O. Freitas <english.quest [AT] best-service.com> (revisão)