cp (Unix) - cp (Unix)
Autor (es) original (is) | AT&T Bell Laboratories |
---|---|
Desenvolvedor (s) | Vários open-source e comerciais desenvolvedores |
lançamento inicial | 3 de novembro de 1971 |
Sistema operacional | Unix , semelhante ao Unix , Plan 9 , Inferno , KolibriOS |
Plataforma | Plataforma cruzada |
Modelo | Comando |
Licença | coreutils : GPLv3 |
Em computação , cp
é um comando em vários Unix e Unix-like sistemas operacionais para copiar arquivos e diretórios . O comando tem três modos principais de operação, expressos pelos tipos de argumentos apresentados ao programa para copiar um arquivo para outro arquivo, um ou mais arquivos para um diretório, ou para copiar diretórios inteiros para outro diretório.
O utilitário ainda aceita vários sinalizadores de opção de linha de comando para detalhar as operações realizadas. As duas especificações principais são POSIX cp e GNU cp . GNU cp tem muitas opções adicionais sobre a versão POSIX.
O comando também está disponível no shell EFI .
História
cp fazia parte da versão 1 do Unix . A versão do cp
pacote GNU coreutils foi escrita por Torbjorn Granlund, David MacKenzie e Jim Meyering.
Modos de operação
cp tem três modos principais de operação. Esses modos são inferidos do tipo e contagem de argumentos apresentados ao programa na chamada.
- Quando o programa tem dois argumentos de nomes de caminho para arquivos, o programa copia o conteúdo do primeiro arquivo para o segundo arquivo, criando o segundo arquivo se necessário.
- Quando o programa tem um ou mais argumentos de nomes de caminho de arquivos e, em seguida, um argumento de um caminho para um diretório, o programa copia cada arquivo de origem para o diretório de destino, criando quaisquer arquivos ainda não existentes.
- Quando os argumentos do programa são os nomes de caminho para dois diretórios, cp copia todos os arquivos do diretório de origem para o diretório de destino, criando quaisquer arquivos ou diretórios necessários. Este modo de operação requer um sinalizador de opção adicional, normalmente r , para indicar a cópia recursiva de diretórios. Se o diretório de destino já existe, a origem é copiada para o destino, enquanto um novo diretório é criado se o destino não existir.
Uso
Copiar um arquivo para outro arquivo:
cp [-fHip][--] sourcefile targetfile
Copiando arquivo (s) para um diretório
cp [-fHip] [--] sourcefile... targetdirectory
Copiar um diretório para um diretório (-r ou -R deve ser usado)
cp -r|-R [-fHip] [--] sourcedirectory... targetdirectory
Sinalizadores de opção
-
-f
(forçar) - especifica a remoção do arquivo de destino se ele não puder ser aberto para operações de gravação. A remoção precede qualquer cópia realizada pelocp
comando. -
-H
(desreferência) - faz com que ocp
comando siga links simbólicos (links simbólicos) para que o destino tenha o arquivo de destino ao invés de um link simbólico para o destino. -
-i
(interativo) - solicita o nome de um arquivo a ser sobrescrito. Isso ocorre se o TargetDirectory ou TargetFile parâmetro contém um arquivo com o mesmo nome de um arquivo especificado no SourceFile ou sourcedirectory parâmetro. Se inseriry
(ou o equivalente do localy
), ocp
comando continua. Qualquer outra resposta impede que ocp
comando sobrescreva o arquivo. -
-n
(sem clobbering ) - evita a substituição acidental de qualquer arquivo -
-p
(preservar) - o-p
sinalizador preserva as seguintes características de cada caminho de origem no destino correspondente: a hora da última modificação de dados e a hora do último acesso , a propriedade (apenas se tiver permissão para fazer isso) e o arquivo bits de permissão. -
-R
ou-r
(recursivo) - copia diretórios recursivamente
Exemplos
Criar uma cópia de um arquivo no diretório atual:
cp prog.c prog.bak
Isso copia prog.c para prog.bak. Se o arquivo prog.bak ainda não existir, o comando cp o criará. Se ele existir, o comando cp substituirá seu conteúdo pelo conteúdo do arquivo prog.c.
Copie dois arquivos do diretório atual para outro diretório:
cp jones smith /home/nick/clients
Isto copia os arquivos jones para / home / nick / clients / jones e smith para / home / nick / clients / smith.
Copie um arquivo para um novo arquivo e preserve a data de modificação, hora e lista de controle de acesso associada ao arquivo de origem:
cp -p smith smith.jr
Isso copia o arquivo smith para o arquivo smith.jr. Em vez de criar o arquivo com a data e hora atuais, o sistema fornece ao arquivo smith.jr a mesma data e hora do arquivo smith. O arquivo smith.jr também herda a proteção de controle de acesso do arquivo smith.
Copie um diretório, incluindo todos os seus arquivos e subdiretórios, para outro diretório:
cp -R /home/nick/clients /home/nick/customers
Isso copia os clientes do diretório , incluindo todos os seus arquivos, subdiretórios e os arquivos nesses subdiretórios, para o diretório clientes / clientes . Alguns sistemas Unix se comportam de maneira diferente neste modo, dependendo do término dos caminhos de diretório. Usando cp -R /home/nick/clients/ /home/nick/customers
em um sistema GNU, ele se comporta conforme o esperado; entretanto, em um sistema BSD, ele copia todo o conteúdo do diretório "clientes", ao invés do próprio diretório clientes . O mesmo acontece nos sistemas GNU e BSD se o caminho do diretório de origem termina em. ou .. (com ou sem barra final).
A cópia de um arquivo para um arquivo existente é realizada abrindo o arquivo existente no modo de atualização, preservando assim o inode dos arquivos, que requer acesso de gravação e faz com que o arquivo de destino retenha as permissões que tinha originalmente.
Comandos Unix relacionados
- cpio - copia uma estrutura de diretório inteira de um lugar para outro
- tar - cria um arquivo de arquivos
- link - chamada de sistema para criar um link para um arquivo ou diretório
- ln - cria um link para um arquivo ou diretório
- mv - move um arquivo ou diretório
- rm - remove um arquivo ou diretório
- unlink - chamada de sistema para remover um arquivo ou diretório
- chmod - altera o modo (também conhecido como permissões) em um arquivo ou diretório
- chown - altera a propriedade de um arquivo ou diretório
- chgrp - altera o grupo em um arquivo ou diretório
- uucp - cópia unix para unix
- scp - cópia segura sobre SSH
- progresso, ferramenta Linux para mostrar o progresso para cp, mv, dd.
Veja também
Referências
links externos
- The Single UNIX Specification , Issue 7 from The Open Group - Referência de comandos e utilitários,
- Manual de Comandos Gerais do FreeBSD -
- Manual de Comandos Gerais do NetBSD -
- Manual de Comandos Gerais do OpenBSD -
- Solaris 10 Usuário Comandos Referência manual -
- Linux Comandos do usuário manual -
- Plano 9 , Volume 1 - Manual do programador do