CP(1)

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@cwi.nl. Relatório de problemas no programa para fileutils-bugs@gnu.ai.mit.edu.

TRADUZIDO POR LDP-BR em 21/08/2000.
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Ricardo C.O. Freitas <english.quest@best-service.com> (revisão)