logo

Comando cp no Linux/Unix | Arquivo de cópia do Linux

'cp' significa cópia. O comando 'cp' é usado para copiar um arquivo ou diretório.

Introdução ao comando cp

O comando cp é usado para copiar diretórios e arquivos. O comando contém três modos de operação principais, representados pelos tipos de argumentos mostrados ao programa para copiar um arquivo para outros arquivos, vários arquivos para qualquer diretório ou para copiar diretórios inteiros para outros diretórios.

Além disso, o utilitário aceita vários sinalizadores de opção de linha de comando para detalhar as operações implementadas. As duas especificações principais são GNU cp e POSIX cp. GNU cp contém várias opções extras na versão POSIX. Além disso, o comando está disponível no shell EFI.

Modos de operação do comando cp

O comando cp contém três modos operacionais principais. Esses modos são completados a partir da contagem e tipo de argumentos mostrados ao programa sob invocação.

  • O programa pode copiar o conteúdo do primeiro arquivo para o segundo arquivo, tornando o segundo arquivo essencial quando o programa contém dois argumentos de nome de caminho para arquivos.
  • O programa pode copiar todos os arquivos de origem para o diretório desejado, disponibilizando qualquer arquivo que ainda não esteja disponível quando o programa contém um ou mais argumentos de nome de caminho de arquivos e perseguindo-os como um argumento de caminho para um diretório.
  • O comando cp pode copiar todos os arquivos dentro do diretório de origem para o diretório desejado, tornando quaisquer diretórios ou arquivos necessários quando os argumentos do programa são os nomes dos caminhos para dois diretórios. Este modo de operação necessita de um sinalizador de opção extra para representar a cópia do diretório recursivo. A origem será copiada para o destino, enquanto um novo diretório será criado se o destino não existir se o diretório de destino já estiver disponível.

Opções do comando cp

Opção Descrição
--arquivo, -a É equivalente a -dR --preserve=all.
--attributes-only Não copia os dados do arquivo, apenas os atributos.
-b É como backup, mas não aceita nenhum argumento.
--backup[=CONTROL] Faz um backup de todos os arquivos de destino existentes.
--copy-conteúdo Quando recursivo, copia o conteúdo especial do arquivo.
-d É equivalente a --no-dereference --preserve=links.
--força, -f Se algum arquivo de destino existente não puder ser aberto, exclua-o e tente novamente (esta opção é evitada se o sinalizador -n também for usado).
--interativo, -eu Ele pede confirmação antes de substituir (substitui o sinalizador -n anterior).
-H Em SOURCE, segue os links simbólicos da linha de comando.
--link, -l Ele especifica arquivos de link físico em vez de copiar.
--dereferência, -L Em SOURCE, sempre segue links simbólicos.
--no-clobber, -n Ele não substitui nenhum arquivo existente (substitui o sinalizador -i).
--no-dereference, -P Em SOURCE, nunca segue links simbólicos.
-p É equivalente a --preserve=mode, carimbos de data/hora, propriedade.
--preserve[=ATTR_LIST] Ele preserva os atributos descritos. Se possível atributos extras: all, xattr, links, context.
--no-preserve=ATTR_LIST Não preserva os atributos descritos.
--pais No diretório, ele usa o nome completo do arquivo de origem.
--recursivo, -r, -R Ele copia diretórios recursivamente.
--reflink[=QUANDO] Ele controla cópias CoW/clone.
--remove-destino Remove todos os arquivos de destino existentes antes de tentar abri-los (em oposição a --force).
--sparse = QUANDO Ele controla o estabelecimento de arquivos esparsos.
--string-trailing-slashes Ele remove as barras finais de todos os argumentos SOURCE.
--link simbólico, -s Faz links simbólicos em vez de copiar.
--sufixo = SUFIXO, -S Ele substitui o sufixo de backup comum.
--target-directory=DIRETÓRIO, -t Ele copia todos os argumentos SOURCE para DIRECTORY.
--no-target-directory, -T Considera DEST como um arquivo geral.
--atualizar, -você Ele copia se o arquivo SOURCE for mais recente em comparação com o arquivo de destino ou se o arquivo de destino não for especificado.
--verbose, -v Ele especifica o que está sendo feito.
--one-sistema de arquivos, -x Ele permanece no sistema de arquivos.
-COM Ele define o contexto de segurança SELinux do arquivo de destino para o tipo padrão.
--context[=CTX] É o mesmo que -Z ou, se CTX for mencionado, define o contexto de segurança SMACK ou SELinux como CTX.
--ajuda Ele mostra o menu de ajuda e sai.
--versão Ele fornece detalhes e saídas da versão.

Os arquivos SOURCE esparsos são encontrados por uma heurística barata, e o arquivo DESR relacionado é criado esparso por padrão. É o comportamento escolhido por --sparse=automático . Podemos descrever --esparso = sempre para criar um arquivo DEST esparso se o arquivo SOURCE incluir uma ordem longa o suficiente de zero bytes. Também podemos aplicar --esparso=nunca para restringir o estabelecimento de arquivos esparsos.

Se --reflink[=sempre] é mencionado, implemente uma cópia leve, na qual os blocos de dados serão copiados somente se alterados. Se não for possível ou --reflink=automático é mencionado, a cópia falha e volta para a cópia padrão. Também podemos aplicar --reflink=nunca para garantir que uma cópia padrão seja implementada.

Para copiar um arquivo para o mesmo diretório, a sintaxe será,

 cp 

Arquivo Linux cp

No instantâneo acima, criamos uma cópia de 'documento' e nomeou-o como 'novo' . Se for o caso, (no nosso caso é 'newdocu') já existe, então ele simplesmente sobrescreverá o arquivo anterior.

Para copiar um arquivo em um diretório diferente

Temos que mencionar o caminho do diretório de destino.

No instantâneo abaixo, anteriormente não havia arquivo de 'texto'. Depois de dar o comando, 'texto' arquivo foi copiado para o diretório de destino que é 'Área de Trabalho' .

Arquivo Linux cp

Linux cp-r

Opção 'r' com o comando copy pode ser usado para copiar um diretório incluindo todo o seu conteúdo de um diretório de origem para o diretório de destino.

Sintaxe:

 cp -r 

Exemplo:

falha de segmentação (despejo de núcleo
 cp -r library /home/sssit/Documents 

linux cp-r

No exemplo acima, copiamos o diretório 'biblioteca' para o diretório de destino /home/sssit/Documentos . Aqui, todo o conteúdo do diretório 'biblioteca', incluindo seu conteúdo, foi copiado para o diretório de destino.

Linux copie vários arquivos ou diretórios

Vários arquivos ou diretórios podem ser copiados para um diretório de destino de uma só vez. Neste caso, o destino deve ser um diretório. Para copiar vários arquivos você pode usar curingas (cp *.extension) tendo o mesmo padrão.

Sintaxe:

 cp *. 

Exemplo:

 cp *.txt /home/sssit/Documents 

Linux copia vários arquivos

No exemplo acima, copiamos arquivos (arquivo1, arquivo2, arquivo3) com a mesma extensão '.TXT' para o diretório Documentos.

Linux cp --backup

Se o arquivo que você deseja copiar já existir no diretório de destino, você poderá fazer backup do arquivo existente usando este comando.

Sintaxe:

 cp --backup 

Exemplo:

 cp --backup file2.txt /home/sssit/Downloads 

Backup de arquivo cp do Linux

Como você pode ver acima, 'arquivo2.txt' já existe no diretório de destino. Portanto, criamos um backup deste arquivo e o copiamos no mesmo diretório (com o mesmo nome).

Agora nosso diretório de destino que é 'Downloads' possui dois arquivos com o mesmo nome (que é 'file2.txt').

Linux cp -i

A opção cp '-i' permite confirmar uma vez antes de substituir seu arquivo.

Sintaxe:

 cp -i 

Exemplo:

 cp -i file3.txt /home/sssit/Desktop 

Linux cp -i

Como você pode ver, ele está pedindo permissão para sobrescrever o arquivo 'arquivo3.txt' pois este arquivo já existe no diretório de destino. Agora você pode pressionar e para sobrescrever o arquivo e n para não sobrescrever o arquivo.

Linux cp-l

Se quiser criar um link físico de um arquivo em vez de copiá-lo, você pode usar a opção 'l'.

Observação: Ao criar o link físico do arquivo, o número do inode dos dois arquivos permanecerá o mesmo. Durante o caso de cópia, o número do inode muda.

Sintaxe:

 cp -l 

Exemplo:

 cp -l file1.txt usr/ 

Arquivo Linux cp -l

Observe aqui que criamos um link físico do arquivo 'arquivo1.txt' em 'usr' . O número do inode de ambos os arquivos é o mesmo.

Linux cp-p

A opção cp '-p' é usada para preservar as propriedades e atributos de um arquivo. Você também pode preservar as propriedades selecionadas que desejar.

Sintaxe:

 cp -p 

Exemplo:

 cp -p file2.txt usr/ 

Linux cp-p

Agora, você pode combinar os dois arquivos (o original e o copiado) na imagem acima, ambos têm as mesmas propriedades.

Linux cp -u -v

O comando cp -u -v é usado quando você deseja ter certeza de que o arquivo de destino está faltando ou não existe.

Sintaxe:

 cp -u -v 

Exemplo:

 cp -u -v docc file1.txt /home/sssit/Downloads/ 

Linux cp -u -v

Na imagem acima, você pode ver que existem dois arquivos 'banho' e 'arquivo1.txt' . Agora queremos copiar esses dois arquivos no diretório ‘Download’. Mas não sabemos se no diretório 'Downloads' já existe o arquivo 'file1.txt'.

data local java

Dando o comando 'cp -u -v' cuidará automaticamente do arquivo já existente (arquivo1.txt) e não o sobrescreverá.

Este comando é útil para copiar arquivos grandes.