Como copiar arquivos e diretórios no terminal Linux

Como copiar arquivos e diretórios no terminal Linux

Saiba como copiar arquivos e diretórios no Linux usando a linha de comando nesta parte da série Terminal Basics.

Copiar arquivos é uma das tarefas mais básicas, mas cruciais que você estará fazendo regularmente.

O Linux tem um comando cp dedicado para copiar arquivos e diretórios (pastas).

Neste tutorial, você aprenderá a copiar arquivos e pastas no terminal.

Copiando arquivos na linha de comando do Linux

Vamos mostrar-lhe alguns exemplos de cópia de arquivos.

Copiar um arquivo para outro diretório

Para copiar um arquivo para outro diretório, tudo o que você precisa fazer é seguir a sintaxe de comando fornecida:

Comandos para usar no terminal

cp Arquivo_de_origem Diretorio_de_destino

Por exemplo, aqui, copiamos um arquivo chamado Ola.txt para o diretório chamado Tux:

copiar_1

E como você pode ver, o arquivo foi copiado com sucesso para o diretório Tux.

Copiando o arquivo, mas o renomeando

Você pode optar por renomear o arquivo ao copiá-lo. Basta dar um nome diferente ao 'arquivo de destino'.

Comandos para usar no terminal

cp Arquivo_de_origem Arquivo_renomeado

Para referência, aqui, copiamos um arquivo chamado Ola.txt para o mesmo diretório, renomeando-o para Outro_nome.txt:

copiar_2

Por que você faria isso? Digamos, você tem que editar um arquivo de configuração. Uma boa prática é fazer um backup do arquivo de configuração no mesmo local antes de editá-lo. Dessa forma, você pode reverter para a configuração antiga se as coisas não saírem como planejado.

Copiando vários arquivos para outro local

Para copiar vários arquivos para outro diretório, execute o comando da seguinte maneira:

Comandos para usar no terminal

cp Arquivo1 Arquivo2 Arquivo3 ArquivoN Diretorio_de_destino

Aqui, copiamos vários arquivos para um novo local.

copiar_3

Quando você está copiando vários arquivos, renomeá-los não seria possível apenas com o comando cp.

Lidando com arquivos duplicados durante a cópia

Por padrão, o comando cp substituirá o arquivo se um arquivo com o mesmo nome existir no diretório de destino.

Para evitar a substituição, você pode usar a opção -n com o comando cp e ela não substituirá os arquivos existentes:

Comandos para usar no terminal

cp -n Arquivo_de_origem Diretorio_de_destino

Por exemplo, aqui, tentamos copiar dois arquivos que já estavam lá no meu diretório de destino e usamos -v opção para mostrar o que está sendo feito pelo comando:

copiar_4

Copiando arquivos interativamente

Mas e quando você quiser substituir alguns arquivos, enquanto alguns devem ser mantidos intactos?

Bem, você pode usar o comando cp no modo interativo usando a opção -i, e ele perguntará a você cada vez se o arquivo deve ser substituído ou não:

Comandos para usar no terminal

cp -i Arquivo_de_origem Diretorio_de_destino

copiar_5

Pratique você mesmo todos os exemplos acima discutidos. Você já sabe sobre como criar arquivos e pastas, então recrie tudo.

Copiando diretórios na linha de comando do Linux

Há comando mkdir para criar novos diretórios, rmdir para remover diretórios (vazios). Mas não há nenhum comando cpdir para copiar diretórios.

Você terá que usar o mesmo comando cp, mas com a opção recursiva -r copiar um diretório com todo o seu conteúdo para outro local:

Comandos para usar no terminal

cp -r Diretorio_de_origem Diretorio_de_destino

Por exemplo, aqui, copiamos um diretório chamado IF para LHB:

copiar_6

Mas aqui ele copiou todo o diretório.

Então, o que você faz quando deseja apenas copiar o conteúdo do diretório, não o diretório em si?

Veja o que você pode fazer:

Copiando apenas o conteúdo de um diretório (não o diretório)

Para copiar apenas o conteúdo do diretório, não o diretório em si, você acrescenta /. no final do nome do diretório de origem:

Comandos para usar no terminal

cp -r Diretorio_de_origem/. Diretorio_de_destino

Aqui, queremos copiar o conteúdo de um diretório chamado IF que contém os dois arquivos a seguir:

copiar_7

E vamos executar o seguinte comando para copiar o conteúdo do arquivo do diretório IF para LHB:

Comandos para usar no terminal

cp -r IF/. LHB

copiar_8

Você também pode usar Diretorio_de_origem\* aqui.

Copiando vários diretórios

Para copiar vários diretórios, você terá que executar o comando da seguinte maneira:

Comandos para usar no terminal

cp -r Dir1 Dir2 Dir3 DirN Diretorio_de_destino

Por exemplo, aqui, copiamos dois diretórios chamados IF e LU para o LHB:

copiar_9

Você pode fazer o mesmo quando quiser copiar arquivos de vários diretórios, mas não do diretório em si:

Comandos para usar no terminal

cp -r Dir1/. Dir2/. Dir3/. DirN/. Diretorio_de_destino

copiar_10

Você também pode renomear os diretórios da mesma forma que renomeou os arquivos.

Teste seus conhecimentos

Agora, vamos ver o quanto você se lembra das lições aprendidas até agora.

  • Crie um diretório chamado testando_copia
  • Copie o arquivo /etc/services para esta pasta recém-criada
  • Crie uma pasta chamada secrets sob este diretório e copie os arquivos /etc/passwd e /etc/services nele
  • Copie o arquivo services em testando_copia para a pasta secrets, mas não o substitua
  • Copie a pasta secrets para o seu diretório pessoal

Isso lhe daria alguma prática.

Via itsfoss.com. Você pode conferir o post original em inglês:

Terminal Basics #7: Copy Files and Directories in Linux

Última atualização deste artigo: 28 de december de 2023