Como copiar arquivos e diretórios no Linux [14 Exemplos de comando CP]

Como copiar arquivos e diretórios no Linux [14 Exemplos de comando CP]

Resumo: Neste guia fácil de seguir, discutiremos alguns exemplos práticos do comando CP. Depois de seguir este guia, os usuários poderão copiar arquivos e diretórios facilmente no Linux usando a interface da linha de comando.

Como usuários do Linux, interagimos com os arquivos e diretórios de tempos em tempos. Uma operação comum que os usuários executam é copiar arquivos e diretórios. Certamente, podemos usar um gerenciador de arquivos gráfico para executar a operação de cópia. No entanto, a maioria dos usuários do Linux prefere usar o cp comando devido à sua simplicidade e funcionalidade rica.

Neste guia para iniciantes, aprenderemos sobre o cp comando. Como o nome sugere, o comando cp é usado para copiar arquivos e diretórios em um determinado caminho.

Ao longo deste guia, entenderemos o uso do comando cp Usando exemplos práticos que podem ser usados ​​no dia-a-dia.

Então vamos começar.

Índice

1
  • Sintaxe do comando cp
  • 1. Como copiar um arquivo no Linux
  • 2. Mostrar progresso do comando de cópia
  • 3. Como copiar vários arquivos para o diretório
  • 4. Como evitar a substituição do arquivo
  • 5. Como substituir o arquivo com confirmação
  • 6. Substituir o arquivo apenas se a fonte for mais recente
  • 7. Como fazer backup de arquivo antes de sobrescrever
  • 8. Como forçar a cópia para substituir o arquivo
  • 9. Como remover o arquivo de destino antes de copiar
  • 10. Como criar um arquivo de link rígido em vez de copiar
  • 11. Como criar um arquivo de link suave em vez de copiar
  • 12. Como preservar os atributos do arquivo enquanto copiava
  • 13. Como executar a operação de cópia recursivamente
  • 14. Como copiar vários diretórios

Sintaxe do comando cp

A sintaxe do cp O comando é idêntico a outros comandos do Linux. Em um nível alto, é dividido em duas partes - opções e argumentos:

$ cp [opções] $ cp [opções]…  

Na sintaxe acima, os colchetes ([]) representar os argumentos opcionais, enquanto suportes angulares () representar os argumentos obrigatórios.

1. Como copiar um arquivo no Linux

Um dos usos básicos do cp O comando é copiar um arquivo para um diretório atual. Na maioria das vezes, os usuários executam esta operação para fazer um backup da configuração importante.

Por exemplo, geralmente criamos uma cópia de backup do arquivo/etc/ssh/sshd_config antes de atualizar a configuração SSH.

Para entender o uso, vamos criar um arquivo simples:

$ touch file-1.TXT 

Em seguida, crie uma cópia do arquivo usando o seguinte comando:

$ cp file-1.TXT FILE-2.TXT 
Copiar arquivo no Linux

2. Mostrar progresso do comando de cópia

No exemplo anterior, usamos o comando LS para verificar se a operação de cópia de arquivo foi ou não bem -sucedida. No entanto, não faz sentido usar mais um comando apenas para verificar o resultado dos comandos anteriores.

Nesses casos, podemos ativar o modo detalhado usando o -v opção, que fornece diagnósticos para cada arquivo processado.

Vamos fazer uma cópia do arquivo-1.TXT Arquivo usando o seguinte comando:

$ cp -v file -1.TXT FILE-3.TXT 
Mostrar saída de cópia

Na saída acima, a seta representa o arquivo que está sendo copiado. O argumento do lado esquerdo é o arquivo de origem, enquanto o argumento do lado direito é o arquivo de destino.

3. Como copiar vários arquivos para o diretório

Até agora, trabalhamos com um único arquivo e apenas o diretório de trabalho atual. No entanto, no ambiente de produção real, temos que trabalhar com um grande número de arquivos. Um dos casos de uso comum nesses ambientes é copiar vários arquivos em um único diretório.

Obviamente, podemos executar o comando cp várias vezes para alcançá -lo, mas essa não será a maneira mais eficaz. Para executar tal operação de maneira eficaz, podemos usar uma sintaxe alternativa do comando cp.

Então, primeiro, crie um novo diretório com o nome dir-1:

$ mkdir dir-1 

Agora, vamos copiar todos os três arquivos no dir-1 diretório usando o comando único:

$ cp -v file -1.TXT FILE-2.TXT FILE-3.txt dir-1 
Copie vários arquivos no Linux

A saída acima mostra que todos os arquivos foram copiados para o dir-1 diretório. Além disso, é importante observar que, para usar esta sintaxe alternativa, o diretório já deve estar presente e deve ser o último argumento do comando.

4. Como evitar a substituição do arquivo

Por padrão, o cp O comando substitui o arquivo de destino, o que significa que ele substituirá o arquivo se houver no destino com o mesmo nome. No entanto, podemos desativar esse comportamento padrão usando o -n opção.

Para entender isso, vamos tentar substituir o arquivo existente:

$ cp -n -v file -1.TXT FILE-2.TXT 

Neste exemplo, usamos o -v opção para ilustrar que o arquivo-2.TXT O arquivo não foi substituído.

5. Como substituir o arquivo com confirmação

No exemplo anterior, vimos como evitar a substituição do arquivo de destino. No entanto, às vezes queremos substituir o destino do arquivo de uma maneira mais segura.

Nesses casos, podemos usar o -eu opção do comando para tornar a operação de cópia interativa. Esta opção mostra a mensagem de aviso e aguarda a confirmação do usuário antes de substituir o arquivo.

Para ilustrar isso, vamos tentar substituir o arquivo existente:

$ cp -i arquivo -1.TXT FILE-2.TXT CP: Substituir 'arquivo-2.TXT'? 

Como podemos ver, o comando está esperando a confirmação. Assim como outros comandos do Linux, podemos usar 'y' para continuar ou 'n' Para abortar a operação.

Este comportamento não interativo padrão do cp O comando não é muito seguro. Há chances de o usuário substituir uma configuração importante por engano. Portanto, algumas das distribuições Linux aplicam o comportamento interativo por padrão usando o comando também Alias:

$ alias cp = "cp -i" 

6. Substituir o arquivo apenas se a fonte for mais recente

No exemplo anterior, vimos como usar o modo interativo. No entanto, às vezes, um usuário pode substituir o arquivo mais recente inadvertidamente.

Para evitar esses casos propensos a erros, podemos usar o -você opção, que tenta a operação de copiar apenas se a fonte for mais nova que o destino ou se o arquivo não estiver presente no destino.

Primeiro, atualize o registro de data e hora do arquivo de origem:

$ touch -t 10101010 File -1.txt $ ls -l file -1.TXT 

No exemplo acima, usamos o -t Opção do comando Touch para definir o registro de data e hora do arquivo como 10-OCT-2010.

Em seguida, vamos atualizar o registro de data e hora do arquivo de destino para a hora atual:

$ touch file-2.TXT 

Agora, vamos tentar executar a operação de cópia usando o -você opção:

$ cp -u -v file -1.TXT FILE-2.TXT 

Aqui, podemos ver que a operação de cópia não foi tentada porque o arquivo de destino é mais recente do que a fonte.

Por fim, vamos trocar os argumentos de origem e destino e executar a operação de cópia:

$ cp -u -v file -2.TXT FILE-1.TXT 

Na saída acima, podemos observar que a operação de cópia é bem -sucedida porque o arquivo de origem é mais recente que o destino.

Substituir o arquivo apenas se a fonte for mais recente

7. Como fazer backup de arquivo antes de sobrescrever

Podemos instruir o cp comando para fazer um backup do arquivo de destino antes de substituí -lo. Para conseguir isso, podemos usar o --cópia de segurança opção, que executa backups automatizados.

$ cp - -backup = numered -v file -1.TXT FILE-2.TXT 

Neste exemplo, usamos a política de backup numerada. Esta política usa números incrementais nos nomes de arquivos de backup.

Para entender isso, vamos executar o mesmo comando várias vezes e observar a saída:

$ cp - -backup = numered -v file -1.TXT FILE-2.txt $ cp - -backup = numerado -v file -1.TXT FILE-2.txt $ cp - -backup = numerado -v file -1.TXT FILE-2.TXT 
Arquivo de backup antes de substituir

8. Como forçar a cópia para substituir o arquivo

Nos exemplos anteriores, vimos como substituir o arquivo de uma maneira mais segura. No entanto, em alguns casos raros, o requisito é substituir o arquivo. No entanto, não há garantia de que a operação seja bem -sucedida todas as vezes.

Por exemplo, a operação de cópia falhará se o arquivo de destino não tiver as permissões de gravação. Vamos ilustrar isso com um exemplo.

Primeiro, altere as permissões do arquivo de destino:

$ chmod 444 arquivo-2.txt $ ls -l file -2.TXT 

Agora, vamos tentar substituir o arquivo-2.TXT arquivo:

$ cp file-1.TXT FILE-2.TXT 

Na saída acima, podemos ver que o comando falhou com a permissão negado erro.

Para superar essa limitação, podemos usar o -f opção, que exclui os arquivos de destino e tenta a operação de cópia se o arquivo de destino não puder ser aberto.

Agora, vamos usar o -f Opção para substituir o arquivo com força:

$ cp -f -v file -1.TXT FILE-2.TXT 
Cópia de força para substituir o arquivo

9. Como remover o arquivo de destino antes de copiar

No exemplo anterior, vimos como remover o arquivo de destino se houver um erro ao operá -lo. No entanto, às vezes o requisito é remover o arquivo de destino primeiro e depois executar a operação de cópia.

Para atender a esse requisito, podemos usar o --Remova a destinação opção.

$ cp-remove-destinação -v file-1.TXT FILE-2.TXT 
Remova o arquivo de destino antes de copiar

Na saída acima, podemos ver que o comando CP remove primeiro o arquivo de destino e depois executa a operação de cópia.

10. Como criar um arquivo de link rígido em vez de copiar

Podemos criar um link difícil em vez de criar uma nova cópia do arquivo de origem. Esta opção desempenha um papel importante quando há uma escassez de espaço em disco.

Então, vamos usar o -eu Opção para criar um link rígido:

$ cp -l -v file -1.TXT FILE-4.TXT 

Agora, vamos verificar os números de inode os dois arquivos para verificar os links rígidos:

$ ls -i1 arquivo -1.TXT FILE-4.TXT 
Crie arquivo de link rígido em vez de copiar

Na saída acima, os números na primeira coluna representam os números de inode.

11. Como criar um arquivo de link suave em vez de copiar

De maneira semelhante, podemos criar um link suave em vez de criar uma nova cópia usando o -s opção como mostrado abaixo:

$ cp -s -v file -1.TXT FILE-5.TXT 

Agora, vamos verificar se o link simbólico foi criado corretamente:

$ ls -l File -5.TXT 
Crie um link suave em vez de copiar

Na saída acima, as últimas colunas representam a relação simbólica do link.

12. Como preservar os atributos do arquivo enquanto copiava

Existem vários atributos associados ao arquivo, como tempo de acesso, tempo de modificação, permissões, etc. Por padrão, esses atributos não são preservados ao copiar o arquivo. Para substituir esse comportamento padrão, podemos usar o -p opção.

Para entender isso, primeiro, atualize o registro de data e hora do arquivo-1.TXT:

$ touch -t 10101010 File -1.TXT 

Agora, vamos criar uma cópia deste arquivo preservando todos os seus atributos:

$ cp -p -v file -1.TXT FILE-6.TXT 

Finalmente, verifique o registro de data e hora do arquivo-6.TXT arquivo:

$ ls -l File -6.TXT 
Preservar os atributos do arquivo ao copiar

13. Como executar a operação de cópia recursivamente

Até agora vimos como copiar um único arquivo. No entanto, muitas vezes temos que copiar todos os arquivos e subdiretos do diretório específico.

Nesses casos, podemos usar o modo recursivo usando o -r ou -R opção.

Então, vamos criar um diretório e adicionar alguns arquivos e subdiretos sob ele:

$ mkdir -p dir-1/dir-2 $ touch dir-1/file-1.txt dir-1/dir-2/arquivo-2.TXT 

Em seguida, verifique se a estrutura do diretório foi criada corretamente:

$ árvore dir-1 

Agora, vamos copiar o diretório Dir-1 recursivamente usando o seguinte comando:

$ cp -r -v dir -1 dir -3 

Por fim, verifique se todos os arquivos e subdiretos foram copiados com sucesso:

$ árvore dir-3 
Copiar recursivamente arquivos

14. Como copiar vários diretórios

Semelhante aos arquivos, podemos copiar vários diretórios recursivos usando um único comando. No entanto, para conseguir isso, o diretório de destino já deve estar presente e deve ser o último argumento no comando. Vamos entender isso com um exemplo.

Primeiro, crie um diretório um novo diretório:

$ mkdir dir-4 

Agora, vamos copiar o dir-1 e DIR-3 diretórios no DIR-4 diretório usando o comando abaixo:

$ cp -r -v dir-1 dir-3 dir-4 

De maneira semelhante, podemos usar o -t opção do comando para alcançar o mesmo resultado. Esta opção nos permite especificar o diretório de destino. Então, podemos usá -lo como um primeiro argumento também:

$ cp -t dir -4 -r -v dir -1 dir -3 
Copie vários diretórios

Neste artigo, discutimos como copiar arquivos e diretórios usando o comando cp. Os iniciantes podem se referir a esses exemplos na vida cotidiana enquanto trabalham com sistemas Linux.

Você pode gostar também:

  • Como usar o comando “MV” no Linux [9 exemplos úteis]
  • Progresso - mostre porcentagem de dados copiados para comandos (CP, MV, DD, TAR)
  • Monitore o progresso dos dados (copiar/backup/compactar) usando o comando 'PV'
  • Comando de cópia avançada - mostra a barra de progresso ao copiar arquivos/pastas grandes no Linux

Você conhece qualquer outro melhor exemplo do comando CP no Linux? Deixe -nos saber suas opiniões nos comentários abaixo.